Refactoring MigrationSqlGenerator to allow batching of sql statements

as well as producing multiple batches per migration operation
@bricelam for SQLite create table needs to be in separate batch, does it apply to any other operations as well?