Two data types - observable-map and observable-vector - will be provided that implement
an IObservableCollection protocol. observable-maps's and observable-vector's will basically
wrap an atom (or atom-like structure such as a cursor) with operations that allow it to
be updated in an "observable" way.
The IObservableCollection protocol will be the minimum necessary functionality required
to bind a collection to an items-view. It will be completely orthogonal to the other
functionality provided by observable-map's and observable-vector's so that database
collections, etc. can also implement IObservableCollection and be bound to items-view's
without necessarily supporting operations of observable-map's and observable-vector's