SQLAlchemy integration

According to the [documentation of dirty](http://docs.sqlalchemy.org/en/rel_0_9/orm/session.html#sqlalchemy.orm.session.Session.dirty) only attributes that really changed will be updated with a SQL statement, although committing will [invalidate](http://docs.sqlalchemy.org/en/rel_0_9/orm/session.html#committing) all instances in the session (probably to make sure the session contains the most recent value of everything in case another transaction changed the value in the DB).

SQLAlchemy also has [several loggers](http://docs.sqlalchemy.org/en/rel_0_9/core/engines.html#dbengine-logging), setting the level of `sqlalchemy.engine` to `logging.INFO` will log all SQL statements.