Upgrade to SQLAlchemy 0.9.4

Inefficiencies in MutableType means we should switch over to
sqlalchemy.ext.mutable to create listeners for mutable types. This
was already recommended in sqlalchemy 0.7 (our previous version)
but the inefficiency was removed in 0.8. We therefore need to
change our code for this upgrade and move to the more efficient
sqlalchemy.ext.mutable

This also requires an upgrade of sqlalchemy-migrate because the old
version used sqlalchemy.exceptions which is now called sqlalchemy.exc