factor out zookeeper jazz, start of promise-use

the key idea is that the concurrent state of the query should be
mostly represented by a promise passed in with a write call to some
thing that takes query objects and asynchronously decodes it into
resultant bundles.

the who is what kind of thing and where in the pipeline is a little
nebulous still, and this version certainly doesn't compile. It
should be clearer after a good night of sleep