CP-5970: Move xenops' cancellable watch paths

Having these paths created were interferring with devices since they were being
recreated once the device had beeen destroyed in the case of VBDs. Now we'll
keep track of the cancellable watch paths in a separate subtree of XenStore and
also tie them to their Xenops task IDs to aid debugging. Also, the semantics of
how to cancel the task have been added (removing the key).

Old path: /local/domain/0/backend/vbd/<domid>/<devid>/tools/xenops/cancel

New path: /xenops/task/<task-id>/remove-to-cancel

Signed-off-by: Si Beaumont <simon.beaumont@citrix.com>
CA-113570: Handle exceptions thrown by xenguest

Signed-off-by: Akshay <akshay.ramani@citrix.com>
xenlight: make VBD.plug idempotent

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
xenlight: give read-only VBDs to Xenlight.domain_create_restore

This ensures that those VBDs are plugged before QEMU is started, which seems to
be necessary for CD-ROMs to work properly.

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
Merge pull request #39 from robhoes/restore

xenlight: give read-only VBDs to Xenlight.domain_create_restore
Merge pull request #17 from simonjbeaumont/cp-5970

CP-5970: Move xenops' cancellable watch paths
Merge pull request #36 from akshayramani/CA-113570

CA-113570: Handle exceptions thrown by xenguest