Backport explicit casting

This backports explicit casting to `change_column` in migrations.
No, the first case is if you want to provide custom SQL for casting.  The second case is if you want to use the CAST function (essentially what we were doing before).