Pickled onion munchies... (Additional functional test coverage for fixup)

This change expands the Monster Model so that it:
- Is defined in terms of interfaces with concrete implementations for:
  - Full notification entities (PropertyChanging and PropertyChanged implemented)
  - Entities that only notify for PropertyChanged
  - Normal entities that don't do notifications
- Has additional tests for fixup when FKs change

I did some work to enable the tests for SQLite, but this is currently disabled since Database.EnsureCreated is not working yet.
All your principal belong to me... (Additional fixup testing and support for reference stealing)

Additional unit tests for fixup code that runs when FKs are changed. Also added support for nulling the old dependent FKs and navigation from the old dependent to the principal for one to one relationships when the FK of another entity is set to point to the principal.
Added support for indexes in the model and throughout the stack.
Added ability to annotate keys using the model builder.
Updated the MetadataExtensions for model builder to work with the APIs that use names for entity types, properties.