Shut up and put your RelatedEnd in my Sidecar... (Initial support for navigation to FK fixup)

This is very early support for fixup of FKs following navigation property change. Only fixup of dependent to principal reference navigations is supported for now--no collection fixup or inverse property fixup. Specific changes:
- Refactor Sidecar to allow it to be used with IPropertyBase and hence navigations as well as normal properties
- Similar updates to StateEntry to allow navigation property values to be obtained in the same way as normal property values
- Update FK snapshot to also snapshot navigations--will rename in a different checkin
- Simple detection of reference changes using the snaphot or notifications triggering a call on the listener that then does simple fixup
That's not my name...again (Just renaming ForeignKeysSnapshot to RelationshipsSnapshot)
Time may change me... (Refactor change detection out of the StateEntry class)

The StateEntry class was accumulating logic used only for detecting changes. This checkin extracts this functionality into a separate service to reduce the amount of code an responsibilities in StateEntry and make change detection easier to test.