Add an optional 'ZKMapListener' to ZooKeeperMap which fires as nodes are added, changed, and removed.
Add tests and changes based on feedback

from 9639406e2cb5d58245c8e839c2ee9295dde3915f
Add null check for listener and other small cleanup
Fix noop listener based on feedback
Fix constructor that was passing null
Merge pull request #165 from eric/zookeeper-map-listener

Update to #11: "Add an optional 'Listener' to ZooKeeperMap which fires as nodes are added, changed, or removed"