Remove DbContextConfiguration dependency from StateEntry and related classes

This is part of Issue #641 which is about cleaning up the use of DbContextConfiguration. DbContextConfiguration is intended to help resolve dynamic services--that is, services for which the actual type/instance of service to use depends on the current context configuration. However, it has gradually spread throughout the code as a general purpose service locator. This causes dependencies to be hidden and creates a lot of coupling to DbContextConfiguration throughout the code, so I am making a set of changes to help fix this.

StateEntry now depends on the state manager and its metadata services. StateManager uses data store services through the mechanism introduced in previous commits. The ChangeDetection reactions to property changes through notifications removing a coupling and a potential circular dependency.