Nested properties are presented nicely when exposed outside of Consistent, and the same nicely presented nested properties are supported as input to Consistent

Specifically, we change "todos.1" to "todos[1]"
Watchers: expand nested keys for notifying changes, so a watcher can bind to "todos" to be notified of changes inside the todos property object.

Also had to change the watcher to use a snapshot of the scope for clean checking, as in the case of nested / child scopes the return value from scope.$.get contains a $ which the clean value inputs do not.
README: try changing use of the word "key" to "property"
Rename snapshotModelSpec to snapshotSpec, as model is no longer a thing