Added a new SessionRecoverableZKCommandExecutor and fixed the following issues.
1. If the server is running slowly, the Zookeeper session may timeout before it is done performing work. Menagerie was not properly handling this and thus the results would sometimes come back as NULL.
2. When getting a new Zookeeper instance it is possible for the Client to remain in a CONNECTING state for a few milliseconds, especially if the Zookeeper server is under heavy loads. It is important to not return the client session until the state has changed from CONNECTING to CONNECTED otherwise a rare failure may occur.
3. There as a fleeting moment between when the Zookeeper state is checked and the sync command was called. If Zookeeper managed to time out during this brief instance there was no way for it to properly recover and thus an error would occur.
Updated the snapshot version and Zookeeper version it is built against