Make clean_with work for multiple db connections

clean_with avoids using strategy= so that it doesn't actually change the
strategy. This means it was bypassing the section that set the database
to actually clean and therefore it was always cleaning the default.
Call transaction before calling rollback_transaction_records

If the protected method rollback_transaction_records is called before
transaction has been called at least once, the
@_current_transaction_records instance variable will be unitialized.
This results is an exception when clean attempts to call
rollback_transaction_records.