Add a dependency on the message_switch

This will be a runtime optional dependency but is necessary for
compile-time
clients: if Xcp_server.use_switch is true, indirect all RPCs through the message switch

Otherwise we fall back to whatever we were doing before (ie a mix
of HTTP, binary framing containing XML and JSON sent over unix
domain sockets)

Conflicts:
	lib/xcp_service.ml
servers: if Xcp_client.use_switch is true, indirect through the message switch

Otherwise we fall back to the ad-hoc unix domain sockets.

Conflicts:
	lib/xcp_service.ml
xen: make the default queue name settable
Switch common prefix to org.xen.xcp (rather than org/xen/xcp)

Conflicts:
	lib/xcp_service.ml
storage: allow the queue name to be adjusted
Add a notion of a 'channel' which can be constructed from an fd and then passed over an RPC call/response
server: when making a server, the raw_fn should be optional

If you don't provide one then you get JSON over HTTP. This should
be the default.

Conflicts:
	lib/xcp_service.ml
Xcp_service.make needs a unit argument, now that an argument is optional.
Add a simple proxy used for channel passing

The proxy will (eventually) be able to use
* fd passing for within the same VM
* vchan/v4v shared memory communications for between VMs on the same host
* TCP/IP for everything else
Add missing file, now with working TCP/IP proxying and prototype fd passing
proxy: buffer shouldn't be "" (oops)
proxy: best-effort clean up of unix domain sockets on exit

If we get Control+C (SIGINT) or regular kill (SIGTERM) or successful
exit we unlink the Unix domain socket.
proxy: add a nice Cmdliner interface
proxy: add a simple 'connect' command to test channel passing
proxy: add debug output to explain which protocol is being attempted
proxy: order the protocols highest weight (best) first
proxy: all else being equal, prefer fd passing over proxying
proxy: actually pass the token rather than a token-length string full of zeroes
Rename proxy to channel_helper