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.
Multiple distinct ring corrections are taken into account

Before this commit, molecules with multiple rings, would only
get 1 ring correction assigned. For unfused rings, such as 3-cyclo-
pentyl-cyclopentene, two distinct ring corrections, i.e. a cyclopentane
and a cyclopentene RC would be appropriate.

Therefore, ThermoGAGroupLibrary.findRingCorrection() is modified.
This is done by returning a Set of ThermoGAValues, rather than a
single ThermoGAValue.

In terms of the alogorithm, a RC is added to the (returned) Set if and
only if it has the same 'depth' as the deepest Stack that is found so far.
This implies that for now, all RC's should have the same depth (i.e. L2),
otherwise trouble is ahead.

Because a ThermoGAValue is added to the Set of unique elements, an
equals(Object o) method is added to the FunctionalGroup type, comparing
the names of both FunctionalGroups.

Because a Set is returned, a new plus(Set<ThermoGAValue>) mehthod
in ThermoData is created.

Finally, because now multiple distinct RCs are returned I renamed the
methods to getRingCorrections, findCorrections, etc... (instead of
the singular name.

One flaw: a molecule with two identical RCs, e.g. cyclopentyl-cyclopentane,
i.e. two cyclopentane RCs, will currently not be accounted for. This
is because a Set only takes unique RCs.
identation fix
Multiple identical Ring straings are recognized

In the previous commit, only distinct RSCs could be accounted for,
because of the nature of the Set type, not allowing duplicate keys.

Now, a Map type is used in which the RSC is mapped to the number of
times it has been identified in the Graph.

Signatures of all corresponding methods are modified.

In terms of the algorithm, the following changes are applied:
-instead of iterating over all the Nodes of the Graph, we now iterate
over only the ring nodes. Two separate loops, one for the SSSRings,
and one for the Nodes inside a SSSRing. A List of Sets of RingNodes are
fetched by a new method in the Graph type, called .getCycleNodes().

Furthermore, to anticipate inaccurate predictions of fused ring systems
using single ring strain corrections, fused ring atoms are perceived
by a new method in Graph: .getFusedRingAtoms(). A comment is appended
to the ChemGraph, warning for the presence of fused ring systems.

Fused ring atoms are perceived by first retrieving a List of Sets of Ring
Nodes (cf. supra), and then iteratively checking if Nodes are present
in multiple Sets of RingNodes. These fused ring atoms are returned as a
List.

As a side comment, I believe ring perception algorithms should not
be part of the Graph type, but be externalized, to keep the
core types of RMG (Species, ChemGraph, Graph, etc...) as lightweight as
possible...
indentation fix
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.
removed debugging System.out.println lines
Chebyshev to PLOG converter (Item 15c from 31Aug2011 RMG meeting)

This function takes a chem.inp file and converts all CHEB type rate coefficients
to a single modified Arrhenius format, fit to the user-specified pressure.

The CHEB information for each reaction is read-in from the chem.inp file.  The
k(T,P) are calculated for 8 temperatures (the number 8 is presently hard-coded)
at the pressure of interest; the temperatures span the TMIN-TMAX range
read-in from the CHEB auxillary information, evenly spaced on an inverse
temperature scale.  These 8 k(T,P) are then fit to a modified Arrhenius format
and these values (and representation) replace the CHEB representation in the
chem.inp file.
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
Mod Replaced Pdep Kinetics Trange, and adding
RMSE as diagnostic information

Adding RMSE of fit as diagnostic information to
comment for each CHEB

Modifying the Trange to 2000 to 500 K (hard coded)
so as to improve the fitting. Earlier it was using
Thigh and Tlow of CHEB
RMSE in PDepKinetics is now log10 base

In earlier commit rmse was gased on natural log
k values, now converting them to base 10 so its
easier to tell how off is the fit in order of
magnitude estimae
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