Auto migration

Changes to migration api to ensure we are always persisting the correct version. You now set a schema version and migration block and migrations are automatically applied as needed.

Also added apis for adding and deleting objects during a migration.

@tgoyne @jpsim 
You need this if you want to manually use a Debug framework. Only needed for testing purposes.