Enhanced API and added a spec for ORMultiMap

In addition the removeBindings api call has been removed in favour of using the newly introduced get, put and remove map level operations.
> do we need to expose the ORSet of the values at all? What is the purpose of this method?
could it be value: Set[Any] and then an ORSet with those values will be created internally.
entries would return Map[String, Set[Any]]

I'm attempting to keep with the spirit of `ORMap`. `ORMap` returns `ReplicatedData`. We're returning `ReplicatedData` but specialised as an `ORSet` because that's all that a value can be in an `ORMultiMap`.