Get it to work (mostly) with older versions of rdkit

Travis build would be faster if we could use the Ubuntu RPM
version of rdkit, but unfortunately that is old and doesn't know
about the element Dubnium. This hacky work-around solves it.
Helpful for people wanting to use Ubuntu, without QM.
(QM features require RDKit to be built with InChI support, which
means you have to build it from source anyway)
Merge pull request #231 from rwest/oldrdkit

Get it to work (mostly) with older versions of rdkit
chemkin: Remove wildcard import in favor of an explict _kinetics namespace

From PEP 8 [1]:

  Wildcard imports (from <module> import *) should be avoided, as they
  make it unclear which names are present in the namespace, confusing
  both readers and many automated tools. There is one defensible use
  case for a wildcard import, which is to republish an internal
  interface as part of a public API (for example, overwriting a pure
  Python implementation of an interface with the definitions from an
  optional accelerator module and exactly which definitions will be
  overwritten isn't known in advance).

I use a leading underscore in the name to avoid conflicts with local
'kinetics' variables, and because the imported module is a private
member of chemkin.  We don't want folks using:

  from rmgpy.chemkin import kinetics

[1]: http://legacy.python.org/dev/peps/pep-0008/#imports
chemkin: Factor per-line logic out of readKineticsEntry

Split it into _readKineticsReaction (for the first line) and
_readKineticsLine (for subsequent lines).  This makes reading
readKineticsEntry easier by limiting the scope of local variables and
allowing you to focus on the higher-level logic without line-level
distraction.

I left as many lines unchanged as possible, excepting some reworking
to handle state during the _readKineticsLine loop.  Instead of
maintaining a handful of per-model variables and using 'None' to
detect which have been set, I've used a single 'kinetics' dict and use
key presence to detect which have been set.  The allows subsequent
lines to clobber kinetics entries from previous lines (e.g. shifting
'arrhenius high' to 'arrhenius low') without having to pass around a
bunch of None variables.
Rearrange chemkin parsing a little, for extra lines on a reaction.

Most extra lines are to do with PDep, and only one type of Pdep
rate expression is allowed, so a chain of ELIF statements is correct.
However, any reaction could be duplicate (DUP) or have an explicit
reverse (REV) so these must come last and be handled slightly differently.
Fix bugs in recent changes to chemkin kinetics reading.

This desperately needs some unit tests, to ensure it's reading these
things correctly. For now, I tested it on several thousand reactions
from the mechanism importer project, and it now gives the same interpretation
as the previous implementation. (With one improvement: PDep reactions gain
the comment about explicit reverse rates).
Merge branch 'pr/215' to close #215

This takes wking's refactoring, rebased onto master, and fixed
so that it so that it behaves at least as well as before (as far as I can tell).
This really needs some unit tests!

Thanks for the clean-up, Trevor!

Closes #215
Add test_kinetics_checkChildParentRelationship databaseTest

Implemented parent/child checking for nodes. I changed the way
matchNodeToChild in base.py worked:

-For the case where the parent is a LogicOr, it simply checks if the child
is in the components of the LogicOr

-There is also the interesting case where we have intermediate LogicOr
nodes e.g:

L3: GroupA
  L4: LogicOr
    L5: GroupB

In this case, we also need to check that GroupB is subgroup of GroupA. I
have implemented some extra lines for this in
test_kinetics_checkChildParentRelationship.

Also, we must ignore a check between the L4 LogicOr and L3 GroupA because
there is actually nothing to check. This was added to matchNodeToChild
to automatically pass this case.

I'm not convinced that we should have intermediate LogicOr groups like
this, but I've left the flexibility to do so for now.

Finally, I also changed the name of the function matchtoLogicOr to just
matchLogicOr as I thought it sounded more concise.
Modified getMcGowanVolume method to include sulfur.

This method is used when calculating diffusivities in liquid phase. I
removed all the other unused elements, too.
Conflicts:
	rmgpy/data/solvation.py
Adds saveEntry() method for solvation database.

Writes string representation of solute or solvent information.
Fixes some old ambiguities in the solvation database.

The solvation database encompasses both solute and solvent
data. Also, we have a solute library that is now used.
Use the default families for liquid-phase example.

I don't know if this is correct or not, but it doesn't work with all the families.
Merge pull request https://github.com/GreenGroup/RMG-Py/pull/236 'bslakman-solvation-fixes'
Clean up print statements when loading kinetic depositories.
Save the recommended.py list of families when saving RMG-database.
Add functions for saving the transport and solvation databases.

Currently saveEntry for solvation is still NotImplemented
Make aromatic unit tests a bit more descriptive.
Clean up print statements in unit tests.

Conflicts resolved:
	rmgpy/data/solvationTest.py
	rmgpy/molecule/groupTest.py
Remove old coverage files before running nose tests when using 'make test'

Otherwise we get an error message when trying to save the html coverage files.
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.