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 
I think the "during a migration" part here and in deleteObject: is redundant.