Allow alternative implementations of the device-model and domain builder (aka xenguest)

To use an alternative device model, first put a new executable in

  /opt/xensource/alternatives/device-model/name

and then set VM.platform:device-model=name

To use an alternative xenguest, first put a new executable in

  /opt/xensource/alternatives/xenguest/name

and then set VM.platform:xenguest=name

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Avoid fs special characters being interpretted in platform:{device-model,xenguest}

We list the contents of the alternatives/ directory, and insist that
the requested option is physically present in the directory.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Merge pull request #1108 from johnelse/ea-1213-clearwater

CLEARWATER: Allow alternative implementations of the device-model and domain builder (aka xenguest)