Faster generation of thermo data via group additivity.

The previous implementation was rather slow due to overreliance on the
deepcopy() function to make copies of ThermoData objects just so we
could modify their comments before adding them together. The new
implementation combines __getThermoDataFromGroups() and __addThermoData()
into a single method __addGroupThermoData() that does not require any
deepcopy() calls.

This change alone eliminated ~10% from a recent (admittedly short) time
profile.
Bugfixes in Molecule.calculateCpInf().

Was counting each hindered rotor as both a rotor and an oscillator.
(Also had the number of oscillators incorrect due to unexpected order of
operations involving if statement.
A bit more Cythonizing of the Wilhoit to NASA functions.

I don't think they are made significantly faster by these, but it still
seems like a good thing to do for completeness' sake.
Delete intermediate arrays used during pdep calculations in RMG jobs.

These arrays can use a fair amount of memory, so we can't really afford
to keep them around in RAM during long RMG jobs. In the future we might
want to look into caching this information to disk rather than just
discarding it in order to avoid having to recompute it, but that's a
task for another time.
Bugfix in PDepNetwork.merge().

Forgot to update to reflect use of Configuration objects.
Don't copy PressureDependenceJob when updating a network.

There is no need to make a copy of the job settings, as we can just
swap in the network instead. The copy as previously implemented turned
out to be rather expensive (~10% of total job), so this is potentially
valuable savings.

This may have to change again when we parallelize.
Calculate densities of states by direct count in RMG jobs.

The inverse Laplace transform of the partition function by the method of
steepest descents is probably better for detailed studies of individual
networks, especially for proper treatment of the hindered rotors.
However, in RMG jobs we are making enough approximations that the
additional CPU cost of this method is not appropriate. The direct count
method as currently implemented is significantly faster to evaluate,
as it does not involve a series of optimizations.

Note that, to use direct count, we must treat the hindered rotors purely
classically. Since the hindered rotors are approximated anyway, this is
not much of a loss.
Modifications to speed up collision matrix and k(E) calcluations.

The resulting speed boost is rather modest, but the changes are still
worth having.
Fixed bug in ThermoData extrapolation to Cp0 and CpInf.

The previous implementation assumed that the slope of the heat capacity
curve was always positive. However, for certain small molecules, this is
not the case. This caused a massive error in the computed enthalpy and
free energy. The commit fixes things by checking for a nonnegative slope
and only applying the extrapolation to Cp0 or CpInf if it makes sense to
do so.
Added commonUnits attribute to UnitType class for faster checking.

Basically commonUnits is a list of the most common units of a given unit
type, units that are known to be handled properly by the quantities
package. This is used as a cache to avoid calling the slow quantities
package where possible.

I've implemented common units for the thermo parameters (energy,
enthalpy, free energy, heat capacity, and entropy). and the effect is
quite dramatic. I've seen a full 2x speed boost from just this commit
alone.
Better error messages when loading database.

You now get a more informative error message, along with the part of the
database being loaded, which is a lot more useful when trying to fix a
mistake in the database.
Use prettify() when saving database instead of toPrettyRepr().

The toPrettyRepr() methods were removed from the kinetics classes to
avoid having multiple repr-like methods. The prettify() function
automatically provides functionality for converting repr() output to a
prettier (i.e. multi-line) version.

Probably we should move the prettify() function out of the rmgpy.cantherm
subpackage at some point, but that's for another commit.
Don't try to save StatesModel when saving frequency database.

The StatesModel class was deprecated and deleted as part of this refactor
branch. Nothing in the frequency database used it anyway, so the answer
for now is simply to delete the ability to save items in that manner.
Some bugfixes in KineticsLibrary.loadOldReactions().

A few more things needed updating to reflect the recent refactoring.