Rewrite to use the pure JS zookeeper client library

- [x] Fix tests 
- [x] travis 
- [x] the vm

> The purejs `node-zookeeper-client` does throw when some unexpected things happen so some `try`s are probably needed in here.

^ This is not plausible unfortunately. There are about 40 places where this can throw if zookeeper does something unexpected. Not sure how much of an issue this is.
Yeah.

My intention with this branch is to just switch ultra away from the native client onto the pure javascript zk client. There are definitely other considerations touched by the code I'm working on, and stuff that could be cleaned up, just not sure those changes should be combined with this one.