db:migrate:down, db:migrate:up & db:migrate:redo doesn't support transactions

If you are using these rakes while developing migrations you have a risk to put a database in invalid state, even if the database supports ddl transactions. Surprising, Migrator.migrate, used in db:migrate, supports transactions, but in same time Migrator.run doesn't.
This pull requests makes things more similar. Its not so DRY as may be, but provides fix what can prevent some hard-to-find problems.