Start SMAPIv1 proxies listening for requests via the message switch
Fix SMAPIv1 backwards compatibility on pool slaves

The two facts:
  Only the master should list the SM plugins directly.
  When the proxies are being started up on the master, the SM database
    records haven't been created.

Imply that we should query Sm.* when running on the master, but use
the SM database records on the slave.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
All SMAPI access is now routed through the xcp-idl client code

If we have message switch enabled then it will be used, otherwise
we still use unix domain sockets.

Note the special-case handling of SR.probe.

Signed-off-by: David Scott <dave.scott@citrix.com>
storage: create per-SR unix domain sockets in storage.d/<name>

This avoids clashing with the global unix domain socket 'storage'

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
message-switch: explicitly specify which xenopsd instance we want

Normally we use the 'default' one but this policy could be refined later.

Signed-off-by: David Scott <dave.scott@citrix.com>
lspci: look in both /sbin/lspci and /usr/bin/lspci

Ideally we should use $PATH-- forkexecd should do this if asked
to execute a relative filename. In the short-term, cope with both
CentOS and Ubuntu paths.

Signed-off-by: David Scott <dave.scott@citrix.com>
arm: robustify the parsing of /proc/cpuinfo

We should not expect there to be x86-only keys. We should ignore any lines
which don't have the 'key: value' format.

Signed-off-by: David Scott <dave.scott@citrix.com>
arm: don't fail (float_of_string) if some /proc/cpuinfo keys are missing

Signed-off-by: David Scott <dave.scott@citrix.com>
Merge pull request #1741 from djs55/smapiv2

Use xcp-idl for SMAPIv2 services