Allow for "computational electrophysiology" simulations (CompEl)

The basic new functionality is to allow exchanges of molecular
positions, e.g. of an ion with a distant water molecule. Whereas
this could be used for different things, the target application is
to determine electrophysiological properties of membrane channels.
In a double-membrane setup the number of ions, and thus the
charge imbalance, and thus the potential difference between
the two compartments can be controlled and kept constant.
If ionic flow occurs through membrane channels, which
dissipates the charge imbalance, ions can be swapped back
to restore the desired charge imbalance between the
compartments. A continuous flow of ions through the
membrane channels can be established that allows to
measure channel conductance and selectivity for example.

If requested by .mdp file settings, the do_swapcoords() routine
is called in the main MD loop. It checks whether the actual
ion counts deviate from the specified reference values and
restores the reference values by ion/water swaps. It also
reports how many ions of each type pass through which channel.

Most of this functionality is in ./src/gromacs/swap/swapcoords.c,
but there is also some new code scattered over the source tree
allowing for grompp reading of CompEl parameters, writing CompEl
data to checkpoint and letting other programs as g_tune_pme
deal with that.

There is also a section in the Latex manual in the special
section describing the protocol.

Some tests have been added in mdrun/tests/swapcoords.cpp that
at the moment only check whether the CompEl parameters are
understood, whether mdrun exits without error code when
running a CompEl simulation and whether checkpointing works.
Some extras have been added to the MdrunTestFixture
class to handle more mdrun-related filenames.

Added doxygen documentation for the new functions.

Ran uncrustify on all new files for up-to-date copyright headers
and proper code formatting. Also uncrustified tpxio.c and
changed the tpx_version from 95 to 96.

Change-Id: Iffda273fd9f47a43e511e70ecdf849f881e933c1