* Allow Command CanExecute to recover when run on inherited bindingcontext
* Make exception handler more generic
* Checking types in Command delegates to avoid exception in the first place
* Adding type chekc to other Command constructor
* Use nameof for ArgumentNullExceptions
* Add unit tests for null parameters, handle value types and Nullable<T>