libxl: implement channels via PV console rings attached to qemu

We extend the (internal) console type with a 'name' (string)
which isn't used by the default built-in console 0.

For every channel we create a console, starting at index 1,
which is handled by the qemu 'chardev' mechanism (ie has
'output=chardev:libxl-channel%d' in xenstore)

Signed-off-by: David Scott <dave.scott@citrix.com>
libxl: spawn a qemu to implement channels

Since every channel is mapped to a console device in xenstore
with 'output=chardev:libxl-channel%d', we need to tell qemu
to create the appropriate chardevs.

Signed-off-by: David Scott <dave.scott@citrix.com>
Add a section in xl.cfg(5) describing 'channels'

Signed-off-by: David Scott <dave.scott@citrix.com>
Add a general description of the channel mechanism to docs/misc/

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