WIP: Watch (passive discovery) + more

Populate the memory store with `testdata/populate.sh`

Browse with `curl http://localhost:8411/zone-1` or in the browser

Match with `curl 'http://localhost:8411/zone-1/*/*/*/*:http'`

Watch with `curl -HAccept:text/event-stream 'http://localhost:8411/zone-1/*/*/*/*:http'`

Singularize the repeated fields - makes sense when using the ascii
representation.

Wrap the route with a guarded handler for HTTP exceptions.

Test the watch, but needs to be synchronized better.

Remove the need for the revision during queries - made Match and Watch
atomic in the Store interface.

TODO: code organization
TODO: unify path parsing/validation/types
TODO: documentation
TODO: edge case tests