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