Add hook for ko.onBindingError

This PR should exposes a function (`ko.onBindingError`) to hook into binding errors.

This should give greater control to users handling cases such as #1626 

The `function onBindingError(spec)` takes one object, `spec` containing the following properties:

| Property | Meaning |
|----------- | ------------ |
| during | (string) The binding function name (`init` or `update`) |
| errorCaptured | (Error) The error that was thrown by the binding function |
| element | (HTML Node) The node the binding was being applied to |
| bindingKey | (string) The name of the binding |
| valueAccessor | (function) As passed to the binding function |
| allBindings | (function) As passed to the binding function |
| bindingContext | (object) As passed to the binding function (contains `$data`, `$rawData`, `$root`, ...) |

Tested on PhantomJS, Chrome, Safari, and Firefox.
The default `onBindingError` will re-throw the `errorCaptured`, but if it is overloaded so that it does not we return `false` here so that `shouldBindDescendants` is `false` in `applyBindingsToNodeAndDescendantsInternal`.