Rework sqlite fk pragma handling
PR reworks how we handle the foreign key pragma in sqlite, so that we turn on the pragma before doing any plan actions, and turn it back on after all actions have run (vs doing it within an action sequence, potentially repeatedly). This is accomplished by introducing a new pre and post hook to the executeActions flow that the sqlite adapter specifically takes advantage of. This should make it possible to potentially re-order and rework how certain plans are generated for sqlite, with an immediate goal of allowing a user to both change a primary key and set identity on it within the same alter chain.
The only downside I could think of is that this may make us do the FK validation step more often as some commands could avoid it, but it's quick enough that I don't think there's real harm in it.