Gravar-mail: OpenMM 4: A Reusable, Extensible, Hardware Independent Library for High Performance Molecular Simulation