Add tests for checking the database
Use chemical formula if species label not present in getSpeciesIdentifier function
Coordinates stored on an Atom now as a numpy array.

Originally a list, however a numpy array is more flexible.
The parsed output from cclib produces these in a numpy
array, and as such the fromXYZ method also uses a numpy
array.
Make an RMG molecule from coordinates.

Takes a list of atomic numbers and the coordinates that
corresponds to each atom and guesses the connectivity
using covalent bond radii.
Method to convert all bonds to single bonds.

For molecule matching in QMTP, we do not have a reliable
way to perceive bond orders. However, we can work around
this by converting all bonds to single bonds as we are only
interested in connectivities to check the molecule.
Check molecular connectivities for QMTP after MOPAC calcs.

This has to also be done for Gaussian. Also this could be
reworked to prevent double-parsing of the log file. As
currently done, the  output is parsed to check the bonding,
then if the job was successful it is parsed again to do the
thermo calculations.
Parse the mopac output file using the parse method

Was already implemented, so just using an existing method
instead of redoing it.
Check the optimized geometry connectivity in gaussian

Previously done with mopac, now including the method
for gaussian.
Merge pull request #190 from pierrelb/checkQMGeom

Check QMTP optimized molecular geometries are the desired species.

It is possible that the geometry optimization "reacted" the species to a different isomer.
This checks that the final geometry is isomorphic with the desired molecule.
Bonds are guessed based on distances between atoms. Bond orders (single, double, etc) are not checked,
only connectivity.
Sets molecule coordinate to an empty numpy array

Setting it as `None` led to other problems. It will be set
to an empty array as default, and as a filled array with
3 values (x, y, and z coordinates) when determined.
.travis.yml: Configure Travis CI for automated testing

The installation instructions are based on the Ubuntu 12.04
instructions [1].  Conveniently for us, Travis uses Ubuntu 12.04 as
its Linux environment as well [2].  I made a few changes to the
suggested installation procedure:

* build-essential [3] instead of g++ (so we get Make too)
* Non-Python [4] RDKit from packages [5,6,7,8,9] instead of from
  source, although this installs RDKit v201106, which may be too old?
  I haven't checked any of the InChl stuff [10] for building from
  source, so this might be completely broken at the moment.
  Unfortunately, the version of RDKit on PyPI is 2009.Q1b1, which is
  too old for the libraries we've installed from packages [11].
* Travis doesn't support Python 2.5 [12], so I only test on 2.6 and
  2.7.

I also don't understand how RMG-Py finds RMG-database, so that might
be broken as well.

[1]: http://greengroup.github.io/RMG-Py/users/rmg/installation/linux.html
[2]: http://docs.travis-ci.com/user/installing-dependencies/#Installing-Ubuntu-packages
[3]: http://packages.ubuntu.com/precise/build-essential
[4]: http://docs.travis-ci.com/user/languages/python/#Travis-CI-Uses-Isolated-virtualenvs
[5]: http://www.rdkit.org/docs/Install.html#ubuntu-12-04-and-later
[6]: http://packages.ubuntu.com/precise/python-rdkit
[7]: http://packages.ubuntu.com/precise/librdkit-dev
[8]: http://packages.ubuntu.com/precise/librdkit1
[9]: http://packages.ubuntu.com/precise/rdkit-data
[10]: http://code.google.com/p/rdkit/wiki/BuildingWithCmake#Getting_Ready
[11]: https://pypi.python.org/pypi/rdkit
[12]: http://docs.travis-ci.com/user/languages/python/#Choosing-Python-versions-to-test-against
Merge branch 'master' of github.com:GreenGroup/RMG-Py
Add function LogicOr.matchToLogicOr

This function gives the boolean of whether two LogicOr objects are
equivilant or not. I needed this for database checking
Add new atom attributes to comparisons

The function equivilant and isSpecificCaseOf for GroupAtom now checks the
list of charges and atom label
Added function isIdentical to groups.py

The function isIsomorphic was meant to compare molecules to groups,
therefore it respects wildcards (seeing as a molecule will never have an
atom named Cs or Ct). However, this makes the function isIsomorphic not
useful when tryint to compare two groups.

I've created a new function isIdentical which will not respect wildcards
and can tell if two groups are the same.
Add function checkWellFormed to family.py

This function is used to check for malformed kinetic families. I have also
removed the function isWellFormed from base.py because it is deprecated by
this new function (and also didn't work due to the many changes we've been
making).

The new function checks for:
-rule labels that have group names which do not exist in groups.py
-rule adjLists that do not match with the corresponding adj list in
groups.py
-Each group must exist in the tree
-Each group adjList must actually be a more specific case of it's parent's adjList
Add check if groups are unique in the database

Coded another check in checkWellFormed to see if each node is unique inside
of a family.
Merge pull request #196 from nyee/rebaseDatabaseTest

Rebase database test
Getting rid of legacy `history` field in database entries.

This field does nothing useful and only creates useless commit differences
on github.  Its removal lets the database be cleaner.
For kinetics databases, write reference and referenceType fields only if not None.