Handle rollback/commit with failed connection

If a rollback or commit is attempted after the connection has failed
Django's BaseDatabaseWrapper does not know to check the validity of the
database connection and may fail due to the connection already being
closed. This is especially a problem when django is attempting to
automatically roll back transactions at the end of a request that has
already failed due to a database error and will result in the default
"Server Error" page being displayed as django cannot handle the error.
Merge pull request #13 from Jonty/master

Correctly invalidate connections on failure.
Merge pull request #14 from Jonty/fix_commit_rollback

Handle rollback/commit with failed connection