Ensure ZooKeeperMap is immutable.

The ZooKeeperMap implementation is expected to be immutable, however it
can be mutated by using Iterator.remove() on the returned entrySet(),
keySet(), and values() collections. This changes the delegate() to
return a Collections.immutableMap() instead of the current behavior
(overloading put/putAll/remove/clear).