Merge branch 'master' into refactor

Conflicts:
	rmgpy/chemkin.py
	rmgpy/data/kinetics.py
Fixed bug in setting Cp0 and CpInf when getting thermo data.

Thanks to a few small mistakes, Cp0 and CpInf were not getting set at
all on the retrieved thermo data. These have been fixed.
Better handling of collision efficiencies when saving database.

In the database we currently store the SMILES of the species that have
collision efficiencies. Without this commit these would be incorrectly
printed as Molecule objects.
Add Pmin and Pmax as attributes of KineticsModel.

Parts of the database assume that these are available on Arrhenius,
and there's no reason not to have them, even for "pressure-independent"
kinetics models.
Fixed bugs in ArrheniusEP.toArrhenius().

This expression now allows returned Ea values to be negative, but only
if E0 is itself negative. It also fixes an issue with forcing Ea to be
at least dHrxn for endothermic reactions.
Re-added isIdenticalTo() and isSimilarTo() to thermo and kinetics models.

These are needed for the diff models tool, and were inadvertently
deleted during the refactoring.
More bugfixes to enable case-insensitive Chemkin file reading.

Missed a few places that needed case insensitivity to be applied.
Removed a few lingering references to MultiKinetics.

MultiArrhenius and MultiPDepArrhenius have replaced MultiKinetics.
Small edit to handle absence of group additivity kinetics parameters.

Now the website will still work even when group additivity values for
the reaction families are missing.
Added maximumAtoms option for pressure dependence in RMG jobs.

This feature allows you to only run pressure dependence for reactions
for only the small-molecule chemistry in your model (which is more
likely to be pressure-dependent than the heavy molecules). You can use
the maximumAtoms option in the pressureDependence() block of the input
file to control the cutoff between small-molecule and large-molecule
chemistry; note that this is in total atoms, not heavy atoms. This
should help alleviate speed issues when building models for very
heavy initial species (e.g. diesel surrogates, JP-10, etc.)
Fixed bug in handling of reaction-path degeneracy during kinetics estimation.

You must divide by two if reacting the same reactants OR if the family
is R_Recombination.
Fixed units error in KineticsFamily.__getAverageKinetics().

We're using the value_si attribute, so the A units must be the SI
equivalent.
Use free energy (not enthalpy) of reaction to choose estimated kinetics.

This more accurately reflects RMG-Java, which claims to use enthalpy
of reaction at 298 K as the arbiter, but actually uses free energy of
reaction instead. This makes some sense, as numerically the important
value is the equilibrium constant, which is better reflected by the
free energy of reaction. In practice, usually both quantities have the
same sign, so this change only affects a few nearly-thermoneutral
reactions (mostly H abstractions from what I can tell). However, it
does help get RMG-Py to match RMG-Java in these situations.
Added PDepNetwork.__str__() method.

This method is needed to write Chemkin files containing pdep reactions
with the desired network information.
Only use defined ranges of density and sum of states for interpolation mapping.

When computing k(E) using RRKM theory, we manually convolve the tunneling
function kappa(E) into the transition state density of states to obtain
the transition state sum of states. This sum of states is already shifted
to the correct transition state energy, which means it will have some
zero values. This fix eliminates a log(0) error which was occurring while
setting up the semilogarithmic interpolator.
Fixed units error in setting molecular weight in makeNewSpecies().

Since the refactor branch, the preferred units of mass are amu.
Don't attempt to fit below 300 K in generateReverseRateCoefficient().

This is because we tend to stop our thermo models at 300 K, especially in
RMG jobs.
Fixed units error in fitting of interpolation model in RMG pdep jobs.

After all these years, m^3/(mol*s) to cm^3/(mol*s) is still plaguing me.
Always keep the exergonic pdep reaction from the activated species algorithm.

Since RMG-Py uses the activated species algorithm of Matheu, it generates
A + B -> C and C -> A + B from separate partial networks. Before I was
trying to keep the rate from the "more explored" network, but now I think
that is too ill-defined to be useful. Instead, I am now simply keeping the
exergonic (dGrxn < 0) direction; this is consistent with our handling of
reaction families that are their own reverse.

I've also updated the check for thermo consistence between the forward and
reverse net reactions to print the discrepancy of the deviation so the
user at least knows about it.
In descendTree(), follow the first match when multiple children match.

This is used e.g. to handle cyclic transition states with multiple
ring sizes. An example is the intra_H_migration reaction

C1[CH]CC=C1 <=> C1C[CH]C=C1

which matches both R2H and R5H. In this case the reaction is actually
the same in each case, but we want to use R2H to estimate the kinetics.
This change should help RMG-Py match RMG-Java; I'm less sure that it will
actually give better kinetics in these sorts of fringe cases that our
group matching scheme doesn't handle well.