Modify KVO#observe with target = self as default

As explained in #311 this allows the KVO API to be called without a target object which is then set to self by default:

```ruby
@example.observe :key, &block
# is the same as
@example.observe @example, :key, &block
```