autogenerate event model
was previously: run autogen diffs through the context, give them a chance to update, include MSSQL flags for default/check
The key event we need is some way to intercept the diff stream. I'm not sure yet if we should consider a full blown event system, which if we were to do that I'd use SQLAlchemy's event dispatch system as the basis, though if we were to do that I'd like to identify many points throughout Alembic where this would be appropriate.
Or smaller scale, just a function that we pass to the environment that receives the diff stream may be all that's needed.
In particular we need to support the use case of systems that use customized metadata schemes, such as Column subclasses, automated column/constraint additions, and others, so that the generated schema objects match the conventions in use by the application. Ideally we should add much more of a document building on the start of things at http://www.sqlalchemy.org/trac/wiki/UsageRecipes/NamingConventions for how to build Column subclasses, table events, all of that, and then also have it integrate with Alembic events too.