Rollback on schema validation errors rather than committing

Was almost trivial, but rolling back transactions breaks if you create tables after creating link columns so I had to pull the creation of the primary key table to before the columns are updated.

@alazier 
It is. I'm putting together test cases for the rollback bugs I've found, but none of them seem trivial so I'd prefer that Finn not waste his time on things we can reasonably work around.