Implement the SQLAlchemy ``handle_error()`` event.

This event hook is to be released as of SQLAlchemy 0.9.7, and
supersedes the existing SQLAlchemy ``dbapi_error()`` event, which
is called upon interception of all DBAPI errors and other exceptions
that are raised within core Engine operations.  The new event offers
the ability to intercept all errors associated with statement execution
and result reception, not just DBAPI-level errors, and also supports
re-raising of the given exception with a replacement exception.

Here, we implement a compatible system that works in SQLAlchemy 0.8
and forward.

partially implement bp: use-events-for-error-wrapping
Change-Id: Ife52be4ae870739dc296742fa4aefb3e31c36be4
Implement new exception interception and filtering layer

Replace @_wrap_db_error() with an event-based system
that leverages the new SQLAlchemy handle_error() event.

The internal logic of @_wrap_db_error() is replaced by a
system of declarative filters, which is also expressed
on the testing side using a new test framework for these
conditions.

partially implement bp: use-events-for-error-wrapping
Closes-Bug: #1214341
Change-Id: Ib8c7f8d5c6f44c49a53dd6411adbf8aaaecb74be
Don't drop pre-existing database before tests

1. The database name is a random string, so shouldn't already exist.
2. If it *does* already exist, we quite likely want to throw an error
   rather than just delete it.
3. "drop database if exists non_existant_database" throws an error with
   mysqlconnector and a noisy-but-harmless warning with others.

(We could fix (3), if it was important)

For consistency, this also makes drop_database raise an error if the
database doesn't exist (or has been already deleted).

Closes-Bug: #1341906
Change-Id: I0c4a460088ffb7eb79cbf8594d2ff37fd70cf157
Imported Translations from Transifex

Change-Id: I7efa4a6871e6ac3671a36441f2acd29ff0e40053
Merge "Implement the SQLAlchemy ``handle_error()`` event."
Merge "Implement new exception interception and filtering layer"
Merge "Imported Translations from Transifex"
Merge "Don't drop pre-existing database before tests"