Add a function for updating the multiplicity of a molecule.

Calculates the multiplicity using the formula 2s+1 where
s is the unpaired total radical electron count.
Update the multiplicity of a newly formed productStructure when generating reactions.

Was running into problems because the default multiplicity is set to -187, which means
that isomorphism checks checking multiplicity now fail and can declare a product
to be a new species even if it already exists in the model.
No longer generate multiple spin state possibilities for products when applying reaction templates.

Now that we can clearly indicate lone pairs and unpaired electrons we will use
the reaction families only to control the spin state.  This also significantly
reduces simulation time.
Add new atomTypes Val4, Val5, Val6, Val7

These new atomTypes refer to the number of valence electrons for an atom.
This should allow us more flexibility when making groups and is probably a
better way to think about atom reactivity in conjuction with the new adj
list format
Improve the raise errror messsage when trying to read adjacency list. Now it displays the molecule involve in the error message.
For debug mode only: display in the warning message the species label when old/intermediate adjacency list are found.
Correct '{}' syntax to '{0}' in strings to accomodate older versions of python.
use try..except statement to reduce verbosity of parametrized tests

the mechanism uses a try block in which a test method is executed.
Only in the case of an AssertionError, or a generic Exception, the
respective methods failed(*args) and exception(*args) will be called and
produce output. If the test succeeds, nothing will be printed.

Moreover, we don't need nose-parametrized, we can just call the callback
without passing it to a decorator!
Upgrade work in progress database statmech and thermo unit tests to normal unit tests.
Remove deprecated functions for testing if birads are singlet/triplet.

We no longer use birads for singlets in the new style adjlist; instead they are
denoted as lone pairs.

Also remove changeTripletSinglet function, as it should be converting radicals
into a lone pair as stated in https://github.com/GreenGroup/RMG-Py/issues/282

Right now, remove all these functions until they are actually needed (these
functions are currently unreferenced elsewhere in the code).  When they are
needed someone can write them again from scratch.
Do simple save of dictionary for kinetics depositories and libraries.

Do not check if the species are identical here.  Instead move those checks
to new unit tests to save time on these functions.
Unit tests to check that adjlists are nonidentical in kinetics libraries and depositories.
Save degeneracies in the database for depositories and kinetics libraries only.

Was printing degeneracies for rate rules (they were all = 1 and unecessary).
Since each reactant was a Entry object, the if instance=Group check was not
working properly.  I changed it to instead identify Species objects
so that you can identify reaction reactions from depositories and libraries.
Add parent child relationship check unit tests for thermo/solvation/statmech/transport.

Now they are checked in addition to the kinetics.