implement more fine-grained events when initializing the database (tables created, migrated, ready) and emit a warning during startup if the DB schema does not match the latest version from the migrations
fix controller methods which are wrapped by the Beaker decorator.

Beaker can not pickle Genshi's Markup instances by default.
split routes setup so plugins have more control: They can observe either Environment.before_route_setup (no routes added by MediaCore) or Environment.after_route_setup (which is a synonym for the previous Environment.routes event).

Environment.routes is considered deprecated and will be removed in future versions of MediaCore CE.
move PluginManager+Plugin classes into separate files
split alembic migrator into separate classes so we can reuse the generic part for plugins
db migration support for plugins (alembic-based).

If a plugin has a 'migrations' directory with an 'alembic.ini' MediaCore
will run migrations from the plugin automatically when "setup-app" is
called.
small PluginManager refactoring: actual plugin loading moved into separate method