Shut up and put your RelatedEnd in my Sidecar...

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
Given that IPropertyBase is a public interface the actual type could be something that is not INavigation. That being said in normal usage it currently will always be an INavigation here. But the idea here is to do something specific to navigations if the property is a navigation, as opposed to do one thing or the other depending on the type, so all in all I feel that the as is more appropriate here.