Rollback transactions on fatal errors

Fixes #1854

Ensured that when errors not caught by NonFatal are thrown, the
transaction is still rolled back.
Merge pull request #1854 from jroper/1854-reset-connection

play.api.db.DB.withTransaction doesn't restore autocommit or reset connection