Fixed two way context bindings.

The simplest example of this bug is as follows.

If bar is set to a value, it will be reflected as the value of foo within the context div.

If bar is changed, foo will be properly modified.

However, if foo is changed, bar will not be. This meant contexts essentially became one way bindings.

```html
<div>Bar equals <span data-bind="bar"></span></div>
    
<div data-context-foo="bar">
    <div>Foo equals <span data-bind="foo"></span></div>
    <input type="text" data-bind="foo" />
</div>
```

The other more subtle bug fixed in this PR is the change from `@view.set(@keypath, value)` to `@view.setKeypath(@keypath, value)`.

This allows for backing views to be inserted in the view hierarchy, while still setting the keypath on it's respective owner, instead of it's immediate superview.

For review @nsimmons @pushrax