Remove incorrect else statement from NEB prep

The intention was to handle other errors. This actually
catches anything that works, and calls it an error.
Generalize Mopac writeInputFile

It is now purely a writer of files.
Alter other file writing methods to use inputFileWriter

The methods now create a list of output lines, and
send it to the inputFileWriter that writes the file.
Correct `getRefinedMolFilePath` doc string
Create a parseOUT method to parse Mopac outputs

The same has been done for RDKit Mol files, Gaussian
log files, etc. Just like those methods, it returns a
standardized list of atom symbols and array of atom coordinates.
Edit the QMReaction init to handle reactant and product geometries

The reactant was placed on the `self` object, and a new
object would then be created for the product (all this for
the double-ended searches). The product geometry would have
to be passed around to other methods that would need the
geometry, so this should (hopefully) simplify the code.
Move calculator-specific double-ended methods to calculator files

Mopac saddle calculations and Gaussian qst2 calculations
have been moved from QMReactions to their more specific
MopacTS and GaussianTS classes.
Clean-up double-ended to surface walking script

Each double-ended method had its own tag, but now the
double-ended methods will print their outputs to a standard
form, so that a single tag is used for all double-ended
methods.
Use new geometry objects in GaussianTS
Use new geometry objects in MopacTS
Use new geometry objects in QMReaction
Use RMGDatabase in QMReaction

The database will become available when running in RMG,
but until then it needs to be loaded here. This should start
to allow the automated kinetics to use any instance of a
Reaction from RMG without any preprocessing.