added a compiler extension that allows easy creation of user-defined compilers,
which register themselves with custom ClauseElement? subclasses such that the compiler
is invoked along with the primary compiler. The compilers can also be registered
on a per-dialect basis.
This provides a supported path for SQLAlchemy extensions such as ALTER TABLEhttp://www.sqlalchemy.org/trac/changeset/5686
extensions and other SQL constructs.