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.
`diff` is O(n) (with `n` of the argument), as is `foldLeft`. So we are >= O(n). Sounds not too bad, IMHO.

But of course it would look so much nicer, if you could format it like this ;-)

``` scala
oldValue.value.diff(newValue.value)
  .foldLeft(oldValue) { (value, element) => value.remove(node, element) }
  .merge(newValue)
```