CP-8988: Add support for legacy (pre Xen 4.5) Libxc

Currently* libxc's xc_domain_save will save just the memory image and expect
the toolstack to save the device model record but xc_domain_restore will
consume the device_model_record too. We need to detect whether we are running
in this environment and handle it as a special case.

* This should hopefully not be the case for much longer. There has started an
effort to upstream some patches to libxc to formalise a memory image protocol
and make the handling of the device model record symmetric across save/restore.
These should be in Xen 4.5.

Signed-off-by: Si Beaumont <simon.beaumont@citrix.com>
CP-8988: Check for existence of suspend image conversion script

Signed-off-by: Si Beaumont <simon.beaumont@citrix.com>
CP-8987: Use Sexp for Xenops header serialisation

We want to be able to extend the Xenops record in the suspend image in future
versions. We therefore require a serialisation format that supports optional
parsing. Sexplib has such functionality with sexp_option allowing us to add new
fields to new versions and still parse older versions with these defaulting to
None.

Signed-off-by: Si Beaumont <simon.beaumont@citrix.com>
CP-8987: Add domain's Xenstore tree to the Xenops suspend record

Add everything under /local/domain/<domid>/ to the suspend image as part of the
Xenops metadata record.

Signed-off-by: Si Beaumont <simon.beaumont@citrix.com>
CP-8987: Serialise Xenops VM record into suspend image

Signed-off-by: Si Beaumont <simon.beaumont@citrix.com>
CP-8987: Don't log Xenops suspend image record contents

It is too large to log when reading and writing but will be of use when
inspecing a suspend image.

Signed-off-by: Si Beaumont <simon.beaumont@citrix.com>