Database performance

This makes a few small changes to the database and Database.addMinimum() which have a big impact on performance.  The details are documented in a new documentation file database_performance.rst.  The changes are

1) add an SQL index on the energy of the minima and transition states.

2) use the sqlalchemy command `undefer` in `Database.addMinimum()` when getting a list of minima withing an energy range.  Without this, accessing the deferred variable `Minimum.coords` entailed a separate query to the database.  This was very slow if we had to check lots of minima.

3) the last thing to think about is reducing the commit frequency.  I haven't yet done anything to fix that, but I have some ideas on how to do it cleanly.

I think that with these changes the database access in `addMinimum()` will no longer be a bottleneck