Add SubstructureQuery class

This adds a new class named SubstructureQuery which contains
methods for molecular isomorphism testing. This also moves the
isomorphism code from the Molecule class into the new
SubstructureQuery class.
Add Molecule::removeAtomIf() method

This adds a new method to the Molecule class named
removeAtomIf() which will remove each atom in a molecule
that satisfies a given predicate.
Fix bug with InChI stereochemistry

This fixes a bug when writing InChI formulas for molecules
with stereochemistry.
Add conversion auto tests for file and line formats

This adds a set of tests for verifying correctness when
converting between different file and line formats.
Remove extra whitespace line in molecule.cpp

This removes an extra whitespace line in the
molecule.cpp file.
Add links to chemkit features for plugin classes

This adds links to the chemkit features wiki page which
lists supported file formats, force fields, etc. instead
of listing them in each class's documentation.
Add CoordinateSet::position() method

This adds a new method named position() to the CoordinateSet
class which returns the 3D cartesian position of a point at
a given index.
Move cstddef include to chemkit.h

This moves the cstddef include to the chemkit.h header file.
Change MoleculeFile::molecules() to return a range

This changes the MoleculeFile::molecules() method to return
a range containing the molcules in the file rather than a
std::vector of the molecules.
Add MoleculeFile::molecule() with name method

This adds a new method to the MoleculeFile class which
returns a molecule from a file given its name.
Fix bug in DelaunayTriangulation::location()

This fixes a bug in which the DelaunayTriangulation::location()
method would sometimes get stuck in an infinate loop. Now there
is a second search performed linearly through all the tetrahedra
if we failed to find the containing tetrahedron by walking
through the delaunay structure.

Also adds a test case with a molecule from the MMFF validation
suite which was affected by this bug.
Add buckminsterfullerene test case for MolecularSurface

This adds a new test case for the MolecularSurface test with
the buckminsterfullerene molecule.
Fix bug in Vector3 test with empty vector

This fixes a small bug in the Vector3 test in which
uninitialized values were being read from the vector.
Rename the remove and delete methods for files

This renames the remove*() and delete*() methods for
the file classes (MoleculeFile, PolymerFile, TrajectoryFile)
to take*() and remove*() respectively. These new names
are more intuitive and should do what the caller expects.
Add DiagramCoordinates::setPosition() overload

This adds a new DiagramCoordinates::setPosition() overload
which accepts an index and two float parameters for the x
and y coordinates.
Change PolymerFile to use size_t

This changes the PolymerFile class to use a size_t for
polymer indicies and for returning its size.
Change Polymer to use size_t

This changes the Polymer class to use a size_t for its
chain indicies and returning the number of chains.
Change PolymerChain to use size_t

This changes the PolymerChain class to use a size_t for
its residue indicies and returning the number of residues.
Rename to PolymerChain remove and delete residue methods

This renames the PolymerChain removeResidue() method
and the deleteResidue() method to takeResidue() and
removeResidue() respectively.
Add VariantMap typedef

This adds a typedef named VariantMap for a std::map
containing a std::string key and a chemkit::Variant
value.