Binding interceptor

Implemented BindingInterceptor that enables app developers to intercept property access, dependent refresh, and command execution. It's mostly useful for logging and custom exception handling.

This is my last patch. I will likely get back to UpdateControls a bit later this year, perhaps as soon as a few weeks later. Please do whatever cleanup you had in mind.

While patching UpdateControls, I ran into three main issues with project structure.

1. Platform projects should share source code, because they are nearly identical. Platform-specific parts should be controlled through #if ... #endif. That would allow me to contribute to all platform projects at the same time.
2. Projects for platform unit test should be created. Again, they should share code with occasional #if ... #endif. That would make it easier to drop in some unit tests while making changes.
3. Some general mechanism is needed that would allow portable code to call platform code. Actually the only time I needed this was for timers, which have their own custom solution via SynchronizationContext. So this last point might turn out to be unnecessary at the moment.

These structural changes would make it easier to contribute to UpdateControls.