Fix pattern match exhaustivity warnings

Although the function names aren't obvious, these were both on the
request marshalling path. These functions are only used by our
well-behaved request marshaller, which should never marshal either
Errors or Watchevents as requests.

Fixed by making one function total, and the other an explicit exception
and a note describing why it can never happen. Perhaps we could
encode this in the types somehow.

Fixes [djs55/ocaml-xenstore#13]

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
test: remove unused binding (fixes compiler warning)

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Break out Store.Node into Node

The Node is the part of the functional core of xenstore.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
What constitutes a valid path is part of the protocol, not the server

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Define Protocol.{Name,Path}

Protocol.Path: a sequence of elements (internally strings)
describing a walk down the tree

Protocol.Name: a thing which is named in the protocol, which
can be a path (absolute or relative to the connection's
homedir) or a well-known watch.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>