Add tests for checking the database
.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.