Added GLEThermostat class for colored-noise GLE thermostat.

The colored-noise, generalized Langevin equation (GLE) thermostat offers
significantly faster convergence when compared to the simpler Andersen
thermostat, but requires more effort to set up. In particular, the
thermostat requires two matrices be specified as input; these can be
generated at http://gle4md.berlios.de/compose.php?page=matrix, and
supplied either as a file on disk or as numpy arrays. These are then
passed from the Python layer to the Fortran layer before any trajectories
are run.
Added some helper math functions for GLE thermostat.

The two new functions are matrix_exp() for computing a matrix exponential
and cholesky() for computing a brute-force stabilized Cholesky
decomposition.
Added Fortran functions for applying GLE thermostat.

Unlike the Andersen thermostat, the GLE thermostat requires a bit of
initialization and cleanup, so I've added the gle_initialize() and
gle_cleanup() subroutines for this purpose. The other new subroutine is
gle_thermostat(), which is used to apply the thermostat itself. The
trajectory subroutines have been modified appropriately to use the GLE
thermostat instead of the Andersen thermostat when desired.
Use default value for GLE C matrix if not specified.

The default value creates a diagonal matrix with Nbeads/beta on all
diagonal entries. In order to achieve this, I needed to make Nbeads a
parameter to the thermostat activate() methods, and therefore to the
RPMD.activate() method as well (the latter for generating umbrella
configurations only).
Merge branch 'thermostat'
Fixed bug in saving of Nbeads in umbrella configurations output.

This commit makes it clear that only one bead -- and not the number
requested for umbrella sampling and/or recrossing factor trajectories --
is used for generating umbrella configurations.
Can now run computeRateCoefficient() without computing recrossing factor.

In many cases the recrossing factor is close to one. For these systems it
is valuable to get an estimate of the rate coefficient without waiting for
the recrossing factor calculation to run. This commit enables a call to
computeRateCoefficient() to succeed even if the recrossing factor has not
been calculated; in this case a value of one will be assumed (and a
warning printed as a reminder).
Added a few sanity checks to the RPMD trajectory codes.

In umbrella integration, we now check that multiple equivalent transition
state dividing surfaces do not give the same maximum value of s1(q).

In umbrella integration, we now check that the breaking and forming bond
lengths do not diverge to crazy geometries (currently 200 bohr), as this
implies that we are sampling way too far from the center of the window.

In recrossing factor, we now check that the breaking and forming bond
lengths do not diverge to crazy geometries (currently 20 bohr), as this
implies that we are sampling way too far from the transition state
dividing surface.
Pass thermostat to RPMD constructor instead of individual jobs.

This change was made because almost all users will simply set up their
favorite thermostat and then use it for all RPMD calculations. The result
is a slightly more streamlined input file.
Added rpmdrate.py main execution script with new input file parser.

This commit formalizes and streamlines much of the input process for
running RPMDrate, moving certain steps out of the input file and into the
main execution script. This results in shorter, easier to understand input
files with better error checking of the input information.

Note that the input file is exec()'d as a Python script with builtins
allowed. For this reason it is incumbent upon the end user to be careful
that the input file script he/she is using is not malicious!