Add an SQL index on the minimum and ts energies for the database

This makes searching for minima within an energy range (as is done when
adding a new minimum) a lot faster.  Ditto with transition states.

This change to the dabase will be automatically added to existing
databases.  There is no need to do any database migration
undefer coords in sqlalchemy query in addMinimum

This gives a massive speed up in the addMinimum function.

Minimum.coords (and other non-sql types) are set as deferred, which
means that they are not automatically loaded during a query.  The
following code

    for m in db.session.query(Minimum):
        print m.coords

will access the database once to get the list of mimima, then once for
each iteration to get the coords from the database.  The following code
gets everything at once and is much faster

    from sqlalchemy.orm import undefer
    for m in db.session.query(Minimum).options(undefer("coords")):
        print m.coords

Currently I've only changed it in Database.addMinimum, but we should
think about doing something similar (optionally) for Database.minima()
add a documentation page about database performance
Merge branch 'master' into database_performance
Merge pull request #66 from js850/database_performance

Database performance