Nose-Hoover multiple time stepping issue
With leap-frog, Nose-Hoover and nsttcouple>1, the same velocity scaling is applied for nsttcouple steps in a row, instead of applying a larger correction at a single step, as was intended with the reversible integrator. Since tau_t should be large compared with nsttcouple*dt, the effect of this bug is very small (the conserved energy quantity still seems to be conserved well).
Restructure leap-frog integrators
There are now 2 template function for MD leap-frog integration
instead of 4 branches in multiple functions.
In addition to invmass, mdatoms now contains invMassPerDim.
invMassPerDim is set to zero for encode frozen dimensions, so LF
update functions no longer need to check the freeze groups.
Also removed the conditionals for vsites and shells in the LF update
functions. Their velocities are now set to zero at startup.
A template function for the most common leap-frog integrator setups
allows for full SIMD acceleration, at least for AVX with gcc5.
Changed dt from double to real in the update, since we need far less
than real precision.
Changed calculation of alpha for VV to real, as it is passed as real.
Fixed multiple time stepping with Parrinello-Rahman and Nose-Hoover.