now placed in the trac/db subfolder.
Also, a new `IDatabaseBackend` interface has been defined,
and this is used for better dispatching from the database connection string
to the appropriate backend.
This greater flexibility would allow to use the pysqlite1 binding
for one environment and the pysqlite2 binding for another, for example.
While the changes were primarily done for cleaning up the current implementation,
this will also make it easier to add new database backends.