Implement velocity terms for virtual sites
This change
* introduces velocity terms for virtual site reporting replacing the
displacement hack used prior,
* removes work-arounds used to keep virtual sites frozen during real
atom propagation,
* allows users of the VirtualSiteHandler object to chose whether to
calculate positions only (used for non-output steps), positions
and velocities (used for output-steps except in md-vv), or
velocities only (used for output-steps in md-vv), which mitigates
the fact that calculating the velocities requires a few additional
operations,
* adds tests of the virtual velocity,
* updates the documentation accordingly.
Fixes #3866
13 files changed: