virtio: add the guest driver frontend (Driver), mirror of Device
The OCaml virtio guest driver: where Device walks the available ring
and posts to the used ring, Driver fills descriptors, publishes chain
heads on the available ring, and reaps completions -- the frontend a
unikernel needs to drive a virtio device itself, in OCaml, rather
than through a C driver (the mirage-net-xen approach). I/O-free over
the shared Vring codecs and the same MEM as Device, so what a driver
produces is exactly what a device consumes: the request/response
loopback test drives a full chain through Driver, has Device fold and
serve it, and reaps the completion -- the real split-ring protocol,
and the same driver drives QEMU's virtio device unchanged.