Added "post write hooks" to revision generation. The primary rationale is
to provide for code formatting tools to automatically format new revisions,
however any arbitrary script or Python function may be invoked as a hook.
The hooks are enabled by providing a ``[post_write_hooks]`` section in the
alembic.ini file. The provided hook is a command-line runner which
includes configuration examples for running Black or autopep8 on newly
generated revision scripts.
The documentation also illustrates a custom hook that converts Python
source spaces to tabs, as requested in #577.
Co-authored-by: Mike Bayer <mike_mp@zzzcomputing.com> Fixes: #307 Fixes: #577
Change-Id: I9d2092d20ec23f62ed3b33d979c16b979a450b48