Updated documentation for new physical quantity modules.

The documentation has been split into multiple files and placed into a
subfolder.
Use MathJax instead of PNG files in generated Sphinx documentation.

MathJax has at least three advantages: (1) no LaTeX installation
required to compile the HTML documentation, (2) documentation builds
much faster, and (3) generated equations scale nicely in the browser.
The only catch is that you need an internet connection to be able to see
the equations in the generated HTML, which shouldn't be a problem.
Added rmgpy.statmech subpackage for statistical mechanics functionality.

The rmgpy.statmech subpackage will contain a suite of modules providing
a variety of statistical mechanics classes and functions. This will
eventually replace the rmgpy.statmech and rmgpy._statmech modules,
enabling faster partial rebuilds and better organization.
Added rmgpy.statmech.schrodinger module for solving the Schrodinger equation.

This module contains Cython-optimized functions that use the solution to
the Schrodinger equation -- in the form of functions that return the
energy levels and degeneracies of the solution -- to compute various
thermodynamic and statistical mechanical properties. The sum and density
of states are computed using the Beyer-Swinehart-Stein-Rabinovitch
algorithm.
Added Mode class to new rmgpy.statmech.mode module.

The Mode class is a base class for all representations of molecular
degrees of freedom. It provides a place to collect common attributes and
methods. For example, the quantum attribute is used to indicate whether
we wish to use the classical or quantum mechanical model for this degree
of freedom.
Added LinearRotor class to new rmgpy.statmech.rotation module.

The LinearRotor class represents a rigid rotor for a linear molecule, i.e.
a rotor with a single moment of inertia (or rotational constant). Methods
are available for computing thermodynamic and statistical mechanical
properties of the rotor using either classical or quantum approaches.
The classical results are much faster to evaluate and nearly always
accurate except at temperatures well below room temperature.

The LinearRotor class inherits from a new Rotation base class, which
itself inherits from the Mode class and adds an attribute for the
symmetry number of the rotational degree of freedom.
Added NonlinearRotor class to rmgpy.statmech.rotation module.

Nonlinear rotors have multiple (usually three) moments of inertia that
are used to compute the thermodynamic and statistical mechanical
contributions from the rotor. As with the linear rotors, the classical
nonlinear rotor is almost always a reasonable choice (except at very low
temperatures). For nonlinear rotors the quantum mechanics solution is not
straightforward, and has not been implemented at this time; you will get
a NotImplementedError if you try to use it.
Added KRotor class to rmgpy.statmech.rotation module.

The KRotor class represents a one-dimensional rigid rotor, and is useful
for working with the K-rotor in certain situations. For example, some
pressure dependence calculations are performed with an active K-rotor
for randomizing the molecular energies, while others leave the K-rotor
adiabatic.
Added SphericalTopRotor class to rmgpy.statmech.rotation module.

The SphericalTopRotor class represents a three-dimensional rigid rotor
with a single rotational constant. This occurs in molecules such as
methane with a high degree of symmetry. The NonlinearRotor class is an
approximate generalization for nonspherical rotors.
Added HarmonicOscillator class to rmgpy.statmech.vibration module.

The HarmonicOscillator class represents one or more internal molecular
vibrational modes as a set of one-dimensional harmonic oscillators.
Methods for computing thermodynamic and statistical mechanical
properties are provided. Unlike the rigid rotor classes, the harmonic
oscillator uses the quantum mechanical solution by default; the
classical solution is also available, but is generally only accurate at
very high temperatures.
Added HinderedRotor class to rmgpy.statmech.torsion module.

The HinderedRotor class represents a one-dimensional hindered rotor,
described by a reduced moment of inertia and an angle-dependent potential
function. There are two options for representing the potential: a simple
cosine expression and a more general Fourier series.

Either the classical or quantum mechanical solutions can be used for either
potential, except that the sum and density of states cannot be expressed
classically for the Fourier series potential. A semiclassical correction
to the partition function is also available, although currently not used
by default.
Added IdealGasTranslation class to rmgpy.statmech.translation module.

This class represents the translational degrees of freedom of an ideal
gas in three-dimensional space. The only parameter is the mass of the
gas molecules, as the volume is replaced by RT/P according to the ideal
gas law. Translational energy levels, as determined from a 3D
particle-in-a-box model, are very small compared to RT except at
temperatures approaching absolute zero, so only the classical limit
results have been implemented. (Like the NonlinearRotor class, a
NotImplementedError will be raised if you attempt to use the quantum
solution.)
Added Conformer class to rmgpy.statmech.conformer module.

The Conformer class represents an individual conformation on a potential
energy surface. Each configuration is defined by a set of molecular
degrees of freedom (translation, rotation, vibration, and/or torsion),
an electronic spin multiplicity, and a number of optical isomers. The
class provides convenience methods for evaluating the thermodynamic and
statistical mechanical properties of the configuration from these
parameters.

In general, each conformer corresponds to a unique geometry (positions
of each atom). Storing that geometry makes it possible to extract some
statistical mechanical parameters (e.g. total mass and moments of
inertia) directly. Several methods for doing so have been provided.

Note that, also the ground-state energy E0 is stored as an attribute on
the Conformer object, it is not currently used to evaluate the
thermodynamic of statistical mechanical properties. This is because we
prefer to work with relative rather than absolute energies so as to not
care about the chosen zero of energy.
Import content of submodules when importing rmgpy.statmech package.

This automatically places the content of each of the various submodules
into the rmgpy.statmech symbol table, which is the preferred method of
accessing the classes and functions of the rmgpy.statmech subpackage.
Added chapter to developers guide for rmgpy.statmech subpackage.

This chapter describes the classes and functions defined in the
rmgpy.statmech subpackage. Mostly this is extracting the class and
function docstrings using the sphinx.ext.autodoc functionality. Note that
we have used the embedsignature=True option in the Cython modules to
improve the look of the generated Sphinx documentation.

Generally equations in docstrings require either escaped backslashes or
raw docstrings. Neither of these is ideal, so it's probably better to
put most equations in the .rst files if possible.
Merge branch 'statmech'
Added rmgpy.thermo subpackage for thermodynamics functionality.

The rmgpy.thermo subpackage will contain a suite of modules providing a
variety of thermodynamics classes and functions. This will effectively
split the current rmgpy.thermo module into several smaller submodules,
again encouraging organization and faster partial rebuilds.
Added HeatCapacityModel class to rmgpy.thermo.model module.

The HeatCapacityModel class represents a thermodynamic model of heat
capacity (and by extension enthalpy, entropy, and free energy). It
provides a place to store attributes and methods common to all heat
capacity models, including the minimum and maximum valid temperature of
the model and a string comment. Methods for getting the heat capacity,
enthalpy, entropy, and Gibbs free energy are enumerated; these must be
overridden in classes derived from HeatCapacityModel.
Added Wilhoit class to rmgpy.thermo.wilhoit module.

The Wilhoit class provides a heat capacity model based on the Wilhoit
polynomial. This expression has the advantages of giving the correct heat
capacity values in the limits of zero and infinite temperature, as well
as providing a very reasonable representation for intermediate
temperatures. The tradeoff is that the expression is more expensive to
evaluate than other heat capacity models.
Added NASA class to rmgpy.thermo.nasa module.

The NASA class provides a heat capacity model based on a simple polynomial
in temperature. This expression is very efficient to evaluate, but has no
real physical basis, and therefore may not always be the most accurate.
To compensate, often a pair of polynomials is used. The NASA class allows
for use of one, two, or three polynomials -- each of seven or nine NASA
coefficients -- to represent the heat capacity, enthalpy, entropy, and
free energy. Each individual polynomial is represented using the
NASAPolynomial helper class.