Added cloning to database model and methods needed to keep it up to date while the migration operations are processed.

The intent is to allow updating the model as we process migration operations. We have a RenameIndexOperation and thus it is needed to allow resetting the name. This happens in a different assembly (Migrations.dll) so it has to be public.