Re-organise data migration tests

This reorganisation of the tests is an attempt to get them behaving
when run in parallel. The main thing is that the tests verifying bad
data migrations are rolled back is no longer stubbing transactions.
Instead, the test actually runs a bad migration so the transaction and
subsequent rollback are performed and then checks to make
sure the changes have not been persisted. To do this, we turn off
transactional fixtures.