Merge branch 'master', remote-tracking branch 'upstream/master'
Added check that computed k(T,P) values satisfy thermo consistence.

This is a sanity check recently added to RMG-Py to help tease out some
PDep bugs. I feel it is a good idea in RMG-Java as well, although probably
less likely to be triggered due to the network expansion algorithm used
by RMG-Java. This check is necessarily done in Fortran, as FAME no longer
returns both the forward and reverse k(T,P) values.
WriteRestart added after model enlargement has terminated

Before, the WriteRestart feature would be called in the
model enlargement step, in the loop in ReactionModelGenerator.
modelGeneration():

" while (!allTerminated || !allValid) {"

However, if RMG decides that all fluxes are below the termination
tolerance, the model enlargement is not carried out, and the Restart
folder is not written.

This is annoying, especially when compiling multiple Seed mechanisms,
in which species with multiple nomenclatures, but the same
adjacency list, are used.
Merge remote-tracking branch 'official/master'
fall back to GATP if all QMTP attempts fail

I have also reduced the drama factor in the InChIKey collision message, as this has sometimes occurred to to other factors besides an InChIKey collision
a fix for issue #211

closes #211 ; use a 1 bond type when writing benzene bonds in mol files for InChI generation (InChI only cares about connectivity); the use of (previously-used) 4 bond type for benzene bonds when writing 2DmolFiles used by RDKit is preserved; a nice alternative would be to use a kekule representation, but we don't currently seem to have such a B->{S/D} utility readily available
preliminary code for checking connectivity implied by optimized coordinates

this is only a portion and more remains to be done
updates to 3D connectivity checking capabilities

this should complete the modifications for this feature, but it has not been tested yet
single-quote to double-quote; an attempt to fix an issue with connectivity checking

cf. http://openbabel.org/docs/dev/FileFormats/InChI_format.html
reconfigured InChI generation process to use MOL file as intermediate

newer versions of OpenBabel seem to use InChI v1.03 behind the scenes, which often produces Standard InChI output (which includes an unwanted S in the string, making comparison more difficult); also the two-option "-xX 'DoNotAddH FixedH'" does not seem to be working properly with newer versions of OpenBabel (instead produces "FixedH'" file); an alternative -xF should introduce the FixedH option without error, but I don't think this works with older versions of OpenBabel
So, what we do instead is to convert to MOL file with OpenBabel, then use the same InChI-generation functionality from (cInChI-1) used elsewhere (with InChI process step now separated out to allow more general usage)
also, MOL files in QMFiles folder will be nice to easily visualize in Gaussview (otherwise not easily seen in the case of MOPAC and MM4 results)
fixed error in connectivity checking code
fix Linux line in OpenBabel process to what I originally intended for it to be

this should hopefully address problems with connectivity checking
an attempt to suppress problem and log file output when doing connectivity checks

when the InChI output files have different names, the proliferation of all these .prb and .log files could be a nuisance
remove stereochemical layers from 3D InChI before comparison

hopefully closes #212; special thanks to @jwallen for suggesting an adjustment to the regex ("/" at beginning rather than end) which will appropriately handle cases where the layer to be removed is the last layer in the InChI
in connectivity checking, make sure 3D InChI equals InChI stored in memory (not just substring)

due to removal of stereochemical InChI layers (previous commit) we can check that the InChIs fully match (vs. the previous substring check)
Fixed deallocation error when FAME fails due to inconsistent k(T,P) thermo.

When this error occurs, we goto the end of the program, where we clean up
dynamically allocated arrays and then quit. However, if inconsistent thermo
is encountered, the chebyshevCoeffs and pDepArrhenius arrays are never
allocated, which causes an error when we try to deallocate them. Now we
check that they are first allocated before attempting to deallocate them.

Unfortunately this does not fix the inconsistent thermo error that is the
real issue.
Added sanity checking for generated k(E) values to FAME.

These checks ensure that the k(E) values are consistent with the k(T) and
Keq(T) values that were used to compute them. Note that, if they are not
consistent, a warning is printed to FAME.log, but the calculation is not
stopped. If you see this warning at low T but not high T, try increasing
the number of grains or decreasing the grain size. (This makes the case
that the variable number of grains that MEASURE now uses was actually worth
the effort to implement. However, it's complicated enough that I'd rather
not port it back to FAME.)

Unfortunately, this also does not fix the inconsistent k(T,P) thermo bug,
as all of the new warnings disappear when the number of grains is
increased, but the bug remains.
Fixed bug in determination of reservoir cutoffs in RS method in FAME.

For some reason the previous algorithm could lead to cutoffs below the
ground state energy for the case where there is a zero barrier adjacent
to the well. This was apparently causes a singular matrix error in the RS
method (probably fairly frequently). The new algorithm ensures that the
reservoir cutoff is at least equal to the ground-state energy, which seems
to avoid the singular matrix issue.
Better code for choosing starting grain for MSC calculation in FAME.

This is to parallel the new code recently added to the RS method. The new
code is a bit longer, but should be more robust. (Of course, ideally it's
exactly the same as it was before...)
Backported barrierless reaction k(E) fix to FAME.

As discovered recently in MEASURE, it's possible for barrierless reactions
to produce a kf(E) that is nonzero but a kr(E) that is zero do to numerical
discretization of energies. When this occurs we force both directions to
be zero. As stated in the comments, this is correct to the accuracy of our
energy discretization, and is required to achieve the correct equilibrium
ratios in the generated k(T,P) values.