Made HO2_Elimination_from_PeroxyRadical family reversible.

I could not find any reason for why the family was made irreversible in
the first place in several Green group member theses from the last
several years. (In fact, the brief section in Catherina Wijaya's thesis
talks about the reverse reaction a bit.) Looking at the git history, it
appears this family has been irreversible since it was first added to
version control in 2005.
Added BensonRingCorrections class for storing metadata about the corrections.

This class currently stores the set of Benson-like ring corrections, along
with a flag for indicating if the corrections are approximate. This allows
us to both apply the best available ring correction (BensonTDGenerator)
while still falling back to QMTP if the corrections are approximate
(HybridTDGenerator). In practice, it allows us to return more than just
the corrections themselves from ThermoGAGroupLibrary.findRingCorrections().
Fix bugs in QMTP library thermo.

It's important to copy the thermo data, so any modifications don't change the original.

Perhaps this should be done inside of getQMThermoData?
Flush QM library files so incomplete jobs save their data.

Previously you could lose a lot of data if the job finished
and the buffered file writers had not written recently.
Make "Verbose:" field optional in QM section of condition file.

If it's not there the default is Verbose: off.
Fix indentation in QMLibraryEditor.java

The mixture of spaces and tabs was driving git crazy.
In anticipation of https://github.com/GreenGroup/RMG-Java/issues/278#issuecomment-10723175
I have opted for soft tabs (4 spaces).
Better handling of missing QM Library files.
Fix some indentation in QMTP.java
Remove debug line from QM lib writing.
Merge remote-tracking branch 'greengroup/4.0'

This gets a couple of @jwallen's commits that were on the 4.0 branch.
Use *modified* (augmented) InChI in QM Library.

The augmented InChI has an extra layer for radicals, storing the multiplicity.
This is important if you are not necessarily using HBI method for all your radicals.
Otherwise these two species have the same InChI:

cyclohexene (mol/cm3) 6.829e-4
1 C 0 {2,S} {6,S}
2 C 0 {1,S} {3,S}
3 C 0 {2,S} {4,S}
4 C 0 {3,S} {5,S}
5 C 0 {4,S} {6,D}
6 C 0 {1,S} {5,D}

cyclohexane12diyl (mol/cm3) 6.829e-4
1 C 0 {2,S} {6,S}
2 C 0 {1,S} {3,S}
3 C 0 {2,S} {4,S}
4 C 0 {3,S} {5,S}
5 C 1 {4,S} {6,S}
6 C 1 {1,S} {5,S}
Merge branch 'qmlib2' for more QM library updates.

This gets various corrections and improvements to the QM Library work.
I think this includes all the changes by Nate up to nyee@c10379aa6e56f7fad43755b57b29cb76a10dc957
excluding the HashMap / LinkedHashMap change (see #275)

Also worth noting - now using the augmented (modified) InChI in the QM library.
I suggest you delete any QM libraries you have made thus far, unless you're sure
there were no radicals in them.
Use RMG.databasesDirectory system property to store where the DBs are.

This will allow us to move them.
1,3-hexadiene example now has RMG.sh bash script.

This is used in the "make test" target.
It will allow us to demonstrate and test environment variable settings.
Added RMG_DATABASES environment variable.

Default is $RMG/databases.
This is where to look for databases.
Added RMG_JOB_SCRATCH and RMG_JOB_OUTPUT environment variables.

These should both be unique to the current job (hence the JOB in the name)
and the OUTPUT should be stuff you want to keep, and the SCRATCH should
be stuff you don't mind losing but in a place that has fast I/O.

Default for both is the current working directory.
Run InChI in the RMG_JOB_SCRATCH/InChI directory.

Default behaviour should be the same as before, because
RMG_JOB_SCRATCH defaults to $PWD if it is not defined.

However, if you DO set RMG_JOB_SCRATCH then you can put it
on a faster drive, and keep your temporary InChI files out
of the way of your results.
Redefined Substitution_O to allow for biradical substitution.

The previous definition had an issue with reactions of the form

R-O-R' + R": -> R-O-R". + R'.

which could only be matched in the forward direction (causing an error
message to appear in the log). I've changed the definition to allow for
R-O-R". to also match the appropriate top-level node (now called
O-RR_or_RRrad). This should stop the error message, but I suspect the rate
estimates will be pretty terrible (which could be okay as long as they
aren't sensitive, but who knows).
Tweaks to path settings.

Trying to make it more robust when you have empty strings etc.
Troublesome FAME output saved to fameOutputDir

The fame input is no longer saved by default, only if it fails.