transactions can be turned off per Migration.

Closes #9483.

There are SQL Queries that can't run inside a transaction. Since
the Migrator used to wrap all Migrations inside a transaction there
was no way to run these queries within a migration.

This patch adds `self.with_transaction = false` to the migration to
turn transactions off when necessary.