Fixed additional molecule_draw import errors.
Merge remote-tracking branch 'stroiano/master'.

Wouldn't be a merge, but both branches have fixed the same molecule_draw renaming bugs.
Renamed rmgpy.molecule.molecule_draw to rmgpy.molecule.draw.

The extra "molecule_" was made redundant by the creation of rmgpy.molecule
as a subpackage.
Collected molecule drawing functionality into new MoleculeDrawer class.

This helps clean up the code a bit by limiting the parameters passed
around the various helper functions. Some small refactoring of the code
was also performed, mostly to further shift to the recently-changed graph
format.
When drawing molecules, only include carbon atoms in straight-chain backbone.

When drawing skeletal formulae, only carbon atoms are considered when
determining the longest straight chain. Previously the algorithm was
considering all heavy atoms (to handle the cases of molecules with no
carbon atoms, e.g. H2O2). The new version will try to use only carbon
atoms, then fall back to using all heavy atoms if necessary.
Restored Reaction.draw() to working order.

This method needed a bit of updating in order to work with the new
rmgpy.molecule.draw module. I also needed to make createNewSurface() a
module-level function instead of a method of MoleculeDraw so that it
could also be used inside Reaction.draw().
Moved reaction drawing functionality to new ReactionDrawer class.

This parallels how the molecule drawing functionality is found in the
MoleculeDrawer class. Both MoleculeDrawer and ReactionDrawer are found
in the rmgpy.molecule.draw module.

This lets me work on the reaction drawing without recompiling the
rmgpy.reaction module, which was silly because the molecule drawing
doesn't really benefit from Cythonization.
Draw reactions vertically aligned on backbone of each molecule.

Aligning to the backbone makes it easier to visually follow the reaction,
as the "paired" reactants and products are more likely to be aligned.
This also accounts for smaller things that might shift the alignment off,
such as radical electrons or subscripts. The only downside is that the
reaction arrow is no longer centered vertically in the generated image.
Added length of reaction arrow to ReactionDrawer options.

This allows you to choose the length of the reaction arrow, if you don't
like the default value.
Better algorithm for finding the "best" straight-chain backbone.

The new algorithm chooses the longest straight-chain with the most
carbon atoms. This ensures a minimum of substituents while still
preferring carbon atoms in the backbone. Two illustrative examples are
isobutanol, which should always have the OH drawn in the backbone, and
acetone, which should never have the C=O drawn in the backbone.

Note that the __findLongestPath() method is now the __findPaths() method
to reflect that it is no longer responsible for returning only the
longest path, but all paths between terminal atoms.
Some fixes to species alignment when drawing reactions.

The species should now be vertically aligned to their respective y
coordinates of zero, as returned by the bounding rectangle from the
species drawing. The reaction should also be properly centered in the
reaction drawing canvas.
Prefer horizontal drawing of functional groups in molecules.

For example, an n-propyl group on a benzene ring would now be drawn
horizontally instead of radiating out from the center of the ring.
There is probably an increased likelihood of overlapping functional
groups, but overall I think the change is worth it.
Added a few special cases to molecule drawing algorithm.

The new special cases are: O2, HO2, H2O2, CO, and CO2.
Updated references to molecule drawing to reflect new API.

The drawMolecule() function has been replaced by the MoleculeDrawer
class with a draw() method. The new approach is significantly more
versatile.
Merge branch 'draw'
Updated documentation to reflect new rmgpy.molecule.draw module.

This includes autodoc entries for the MoleculeDrawer and ReactionDrawer
classes.
Fixed bug in drawing order of atoms in some functional groups.

When I added exceptions for O2, HO2, etc. I needed the heavy atom to be
printed last. However, I inadvertently caused all non-carbon functional
groups to have their heavy atoms printed last, e.g. ethanol would appear
as CH3-CH2-HO instead of the correct CH3-CH2-OH. This commit corrects the
bug by only making the heavy atom last for the special cases.
Reverted change to rmgpy/data/kinetics/saveEntry longDesc encoding

UTF-8 encoding was employed in c0f7e to facilitate writing to a
file that wasn't opened using the codecs module's utf-8 feature.
However, this actually rendered the saveEntry method unusable in
its intended capacity for any entries with a special character in
the long description.