Due to Cinder's rolling upgrade support we have to be very careful with
table drops and column alterations and drops.
In our Unit Tests legacy migrations walk, where we go through the
migrations to confirm they are properly applied, we raise an error on
those 3 operations to prevent them from being casually added in new
migrations.
Those checks are missing for the Alembic migrations, so this patch adds
them there as well while consolidating the check code for both types of
migrations into a single decorator called `prevent_drop_alter`.
Change-Id: I577f65968feb9c10488a19c6f99e8c0b720a433d