0.6.0 WIP

Those interested in and using Rivets.js currently, feel free to test out this branch and report any issues so that they can be addressed before release.

#### What's new in 0.6.0:

- [x] Multiple adapters through interfaces.
- [x] Built-in `.` adapter using ES5 natives (this can be swapped out for a Watch.js or an Object.observe adapter).
- [x] Recursive keypaths (`user.address:zip`).
- [x] Recursive dependencies (`event.tax < event.location:region`).
- [x] All dependencies now stem from the target object, *not* the view's scope object.
- [x] The `prefix` configuration is now an absolute prefix (you need to include "data" in the prefix if you want to use data attributes). Defaults to `rv`.
- [x] @codepodu's fix for #75 (#115).

#### Known Issues:

1. ~~Recursive dependencies are not re-calculated when intermediary keys are changed, only the last property is observed for changes.~~

2. The built-in adapter observes array mutations (`push`, `pop`, `unshift`, etc.) but not changes made to indexes on the array directly (`array[3] = "world"` for example).

3. The built-in adapter cannot subscribe to an array's length property. Currently you need to use a formatter to access the array's length property and just subscribe to the array itself (`list.items | length`).

#### Roadmap:

- [ ] Add specs that cover all the new features and APIs in 0.6.0.
- [x] Regress feature #38 as per discussion in #200.
- [x] Add a configuration option to set the root interface (currently hard-coded as `.`).
- [x] Address issue 1 from above.
- [ ] Update user documentation.