Interactive Molecular Dynamics (IMD)

IMD allows to interact with and to monitor a running molecular dynamics
simulation. The protocol goes back to 2001 ("A system for interactive
molecular dynamics simulation", JE Stone, J Gullingsrud, K Schulten,
P Grayson, in: ACM symposium on interactive 3D graphics, Ed. JF Hughes
and CH Sequin, pp. 191--194, ACM SIGGRAPH). The user can watch the
running simulation (e.g. using VMD) and optionally interact with
it by pulling atoms or residues with a mouse or a force-feedback
device.
Communitcation between GROMACS and VMD is achieved via TCP sockets
and thus enables controlling an mdrun locally or one running on a
remote cluster. Every N steps, mdrun receives the applied forces from
the VMD client and sends the new positions to VMD.
Other features:
- correct PBC treatment, molecules of a (parallel) simulation are made
  whole (with respect to the configuration found in the .tpr file)
- in the .mdp file, one can define an IMD group (including the protein
  but not the water for example is useful). Only the coordinates of
  atoms belonging to this group are then transferred between mdrun and
  VMD. This can be used to reduce the performance impact to an almost
  negligible level.
- adds only two single-line function calls in the main MD loop
- and mdrun test fixture checks whether grompp and mdrun understand
  the IMD options

Change-Id: I235e07e204f2fb77f05c2f06a14b37efca5e70ea
Documentation house-keeping in file swapcoords.c

Modified Doxygen documentation of functions such that they now have
\brief descriptions. This way, Teemu's automated Doxygen documentation
checker won't complain about many missing brief descriptions in that
file. I am not making this patch dependent on the documentation
checker (gerrit issue #3213) because the brief descriptions should be
there anyway.

Change-Id: I4fc2c9de17b5ce8e9abdcd8fc51d002a245fbf2a
Add Cray compiler support

 * Add support for SIMD intstructions with the Cray compiler with
   -hgnu. This is a general GNU compatibility mode so there
   also has to be a guard in the atomics section in threadMPI.
 * Add support for atomics with the Cray compiler.
 * Add Cray compiler support for cycle counting.
 * OpenMP detection for the Cray compiler in CMake before
   version 3.0 is broken, so refuse to proceed with that
   combination.

Change-Id: I1209f3a61ed1d4d49e56dacbb315235088c5eea6