Don't double-count spin-orbit coupling for CBS-QB3 et al in CanTherm.

Some model chemistries include the spin-orbit coupling correction in the
reported energies already; this includes CBS-QB3 and G3. However, we were
always applying the correction inside CanTherm, leading to inadvertent
double-counting of this correction for CBS-QB3 and G3. This means that
any enthalpies computed with CanTherm for these methods were off by
0.22 kcal/mol per C atom and 0.085 kcal/mol per O atom. This commit fixes
the error.

Some extra comments were also added with more details about where the
various energy corrections come from. Thanks to @gmagoon for compiling
this information.
Print tunneling coefficients in CanTherm kinetics output.

The comments before a kinetics() block in a CanTherm output file now show
a small table with the values of k(T) with and without tunneling, plus
the values of the tunneling factors themselves, at various temperatures.
This would be useful in case anyone wanted to use the tunneling factors
in another setting, or for printing in a table in a paper, etc.
Manually add zero-point energy when not using CBS methods in CanTherm.

The energy read from this location does not include the zero-point energy;
it is the energy at the bottom of the potential well. By convention,
CanTherm always thinks in terms of ground-state energies, which by
definition include the zero-point energy.

Note that the CBS methods were using the correct ground-state energy,
and that you were supposed to be including zero-point energies in values
specified manually in the input file, so this only affects your jobs if
you were using a CBS method or manually specifying energies.
Don't forget units in e5f18b170a204dd8e808b9a1dcf65bfbd649cf74.

Was adding an energy in Hartrees to one in J/mol by mistake.
Added logging info to completed simulations
Raise exception if negative barrier encountered in Eckart tunneling calculation.

This is usually caused by users giving the wrong numbers of each atom,
which results in the E0 for the species or transition state being
referenced to the wrong reference state. Before this would usually cause
the code to get stuck in an infinite loop since the error would occur in
a Cython block; now the code will raise a ValueError and stop with a
more useful error message.
Check for REV after removing comment from line in Chemkin file reader.

Otherwise you could match things like the word "reversible" in the
comment, which could lead to unexpected behavior.
Fixed bug in loadRMGJavaJob() involving multiple reaction systems.

RMG-Java allows for multiple reaction systems, but only one set of
termination criteria (i.e. one conversion or time to use for all reaction
systems). When loaded in RMG-Py, the current algorithm reuses the same
TerminationConversion or TerminationTime object for all reaction systems.
However, when it tries to map the conversion species from the condition
file to the corresponding Chemkin file, it applies the change to each
reaction system, which fails for all but the first.

It might be better for the RMG-Java condition file loader to make
different TerminationTime and TerminationConversion objects for each
reaction system, but implementing that approach was more complicated than
this simpler fix, so I've held off for now.
Better parsing of RMG-Java condition files via readMeaningfulLineJava().

The previous implementation was much less flexible when it comes to
handling comments in the condition file. The new helper method
readMeaningfulLineJava() improves things considerably.
More flexibility in parsing of reactions in Chemkin files

The new implementation takes each line containing a reaction equation,
removes any comment information, extracts the three Arrhenius parameters,
and then assumes anything that is left is part of the reaction equation.
This should work for almost all of the permutations of Chemkin-like files
I have seen recently, including those with spaces in the reaction
equation and with reaction equations longer than 52 characters.

I've also added functionality for parsing reactions written as 2A=B+C
(instead of A+A=B+C) and A+B=2C (instead of A+B=2C). Since Chemkin
already requires that species identifiers begin with a letter, this is
a straightforward implementation.
Merge branch 'chemkin'
Handle bizarre representation of some integers in Chemkin Chebyshev output.

When merging two mechanisms in Chemkin-MFC, the output apparently writes
the numbers of temperature and pressure terms as e.g. 6.0E0 and 4.0E0
instead of 6 and 4. To handle this in Python we need to first convert
the string to float, and then on to int.
Better handling of stoichiometric coefficients in Chemkin files.

I had previously added code to handle the presence of stoichiometric
coefficients, but placed it inside an else clause when I should have
placed it before the corresponding if block.
Fixed bug in handling of reaction orders in Chemkin file writing.

This bug affects ThirdBody, Lindemann, and Troe forms. For ThirdBody and
the low-P limit of Lindemann and Troe, we must include the third body
when determining the units. This was not being done correctly, leading to
values that were too small by six orders of magnitude.
Fixed bug in reading of Chebyshev coefficients from Chemkin files.

Another units mistake, this time in forgetting to adjust the first
coefficient from cm^3/mol*s to m^3/mol*s for the case of bimolecular
reactants.
Added a requirements.txt file for pip to install python packages.

Use it like:

    pip install -r requirements.txt

(Nb. you have to `pip install numpy` first).
Moved import checking of xlwt package.

Previouslt xlwt was imported in RMG.initialize, so was out of scope in
RMG.execute, when it was later used. It is now imported at the top level
so it is in scope for all methods.

Closes #66
Merge remote-tracking branch 'faribas/master'
Save output before first simulation run.

If the first simulation fails, it would be nice to see the mechanism that
caused the failure. 
There is a new method saveEverything that saves the HTML, Chemkin, and restart.
This is now called at the start as well as once per iteration.
Check for a few possible mistakes in input files.

This method can be expanded to include other common (or uncommon) mistakes.
For now, it catches reaction systems that cause extrapolation of Chebyshev
polynomials outside of the PDep range. Helps avoid issue #67