Better implementation to enable loading of windows from disk if not given.

I missed several important steps: the setting of default parameter values in
the computePotentialOfMeanForce() function in rpmdrate.input; the loading of
the force constant from the file; and the setting of default parameter
values in Window.__init__().
Added xi_range option to Window class for umbrella sampling.

The xi_range attribute indicates the maximum allowed range for the xi value
in a given window. If set and the xi value for a configuration moves outside
of this range, then the trajectory will be restarted. You specify this value
when creating a Window object in your input file.
Recrossing trajectories will now restart if SHAKE fails to converge.

If we start to sample from an unusual region of the PES, we could run into a
situation where the SHAKE algorithm for constraining the trajectory to the
dividing surface is unsuccessful. Now that we have been using the code for a
while, I feel better saying that this is an actual error (rather than a bug
in our code), so when it happens we simply re-equilibrate from the original
configuration and continue.