Refactoring MigrationSqlGenerator to allow batching of sql statements

as well as producing multiple batches per migration operation
Nothing needs to be in a separate batch. There's no concept of batching in SQLite, so we fake it by splitting the commands in the ADO.NET provider.