Major Refactoring:
1. Added better handling in ReactiveProperty.ProvideValue for invalid DependencyObject / DependencyProperties and DataTemplate cases.
2. ReactiveProperty no longer relies on the control's DataContext to be set to a value.  Now it will bind to the DataContext and inherit it from parent controls properly.
3. Rebuilt the ReactiveBindingProxy class to make it easier to understand.  Moved all binding code out into separate classes.
4. Added caching to ReactiveBindingExpressions to speed up reactive bindings.
5. Added a more structured unit test framework, and added tests for all special cases currently handled by ReactiveBinding in XAML.