Fixing solvation database I/O

The solute library can read molecules as SMILES strings or adjacency lists.
If they can safely be written as SMILES strings, then they are saved that way too
because it's more concise.
Fix transport database I/O

This was pretty much entirely missing before.
Tiny tweak to thermo database I/O
One way to preserve database order using an OrderedDict.

This may have a performance penalty, so perhaps should be looked at again later.
It does at least mean that when you load and save the database, things like the
forbiddenStrutures file end up in the same order as how they started.

Sort order is (highest priority first)
 1. according to the tree, if there is one
 2. according to the entry.index values, if they exist
 3. preserving the order that they were loaded in, if Python > 2.7
 4. random
Save numbers in {:g} format not {!r} format in prettify function.

The prettify function, originally part of cantherm (3f7c71baa2c07d6bd21aadde853a487dddf503b7)
is used to save entries in the database. It turns all numbers into repr(number),
even if you had previously tried to save them as something else.
Now, it uses {:g} formatting, so instead of 
 A = (3600000000000000.0, 'cm^3/(mol*s)')
we now get
 A = (3.6e+15, 'cm^3/(mol*s)')

This will have broad-ranging impacts on file output - I hope they are all positive.
If not, we will have to make it configurable on a case-by-case basis somehow.
Split databaseTest into separate tests by reaction family.

It uses test generators, a feature of nose, which means we
can't use the built-in unittest module any more, but that's OK
because we were using nose anyway.  You can use nosetests, or 
just run it on its own:

 $ python databaseTest.py
Merge pull request #238 from rwest/dbtest

Split databaseTest into separate tests by reaction family.
add attributes in makeProfileGraph to prevent gprof2dot from crashing

closes #239
Remove outdated gprof2dot from external.

This package is now in the python package library and can be installed
via "pip install gprof2dot". It is in our requirements.txt file, so most
people will have that. That version is different, and our code now
reflects those changes, so this version is out of date and redundant.
Thus, I'm removing it.
QMThermo unittest skips test if your MOPAC executable is unaccessible

Testing the qmdata generation and that we can get
thermodynamic values from it. Checks that your MOPAC
executable is accessible, otherwise the test is
skipped.
Remove output files when first testing QMTP with MOPAC

If an output file exists from a previous run, the method
will to read the `.thermo` file printed from that
run, and not test the rdKit molecule generation nor the
MOPAC specific methods. Removing it ensures `testGenerateQMData`
covers these methods, while `testGenerateThermoData` will cover
the use of an existing `.thermo` file.
QMTP tests for Gaussian.

Essentially the same thing as the MOPAC test.
Removed check for the QM scratch directory

The scratch directory is not a requirement, so it
should not throw an error if it fails.
Tests for the main qm script
Added PM6 and PM7 tests.

Now that these have been added, they need to be tested.
Check that no files are in the test output folder.

If there are files, delete them. This ensures the test
runs through the running of a QM job, and doesn't load a
`.thermo` file  (this is tested elsewhere) from a previous test.
QMTP tests without environment variables

The tests ran with an 'RMGpy' environment variable,
but this is not always set, so the tests can now be run
without the variable defined.
Fix the rmgpy getPath method so the test can find the testing folder

rmgpy.getPath was not properly set
Checks for and makes folder to store qm testing files.
Merge pull request #228 from pierrelb/QMTPtest

QMTP tests now implemented and passing.