CA-108915: Deprecate mpathHBA so dev_loss_tmo can be configured by DMP

SM calls the script /opt/xensource/sm/mpathHBA if a host has at least one
multipathed HBA SR. The script mpathHBA goes through all fc-ports and specifies
dev_loss_tmo (and the deprecated variant lpfc_nodev_tmo) as MPATH_TIMEOUT=30s.
This is not good because some users need to modify this timeout value in order
to accommodate controller failover events.

In recent versions of DM Multipath dev_loss_tmo can be configured as a
configuration option in /etc/multipath.conf. This commit removes
/opt/xensource/sm/mpathHBA so DMP can set the dev_loss_tmo value which users
configure in multipath.conf.

Signed-off-by: Robert Breker <robert.breker@citrix.com>
CP-5736: ISCSISR - force_tapdisk

This is a workaround to make it possible to use a domU provided iSCSI
target as a raw iSCSI SR. By using the force_tapdisk parameter during SR
creation, disks will be accessed through tapdisk aio which copies
blocks, preventing page sharing issues between guests. This is a
workaround for the bug CA-110453.
CP-5736: Unit tests

Unit tests and scripts to setup the environment. See tests/README for
details.
CA-111816: Remove duplicate diskdatatest-folder from the sm repository

The sm-repository currently contains the folder diskdatatest although the same
folder is as well contained in the xencert-repository.

As XenCert is the only component that uses diskdatatest, it seems the better
place to maintain it. This commit removes the duplicate copy from SM.

Signed-off-by: Robert Breker <robert.breker@citrix.com>
Update README.md

Fix typo
CA-110835: check XAPI session existence before trying to get the timeout

The NFS timeout config setting was introduced by CA-106558 as a SR.other-config field. So when mounting a NFS share, the SM backend will call back to XAPI to get this config. Normally this won't be a problem, because SM backend driver is usually launched up by XAPI, so there is (almost) always a XAPI session available in hand. However, in some cases, this is not true. E.g. when HA is enabled, the heartbeat VDI needs to be mounted even before XAPI starts, and it's invoked by the attach-static-vdi script not XAPI. In such case, calling XAPI to get config will fail ultimately.

The patch is a shortcut fix, it verify whether there is a valid XAPI session around before attempting to read the config, and will just fall back to default if there is none. A better approach would be putting the timeout setting as part of the SMmaster's PBD device config, so that the information will always be accessible during a relevant SMAPI call (no need for the extra XAPI field getting), and will be dumped/loaded automatically as part of the static VDI attaching configuration file. This could be a future improvement, currently registered as CP-5683.

Signed-off-by: Zheng Li <zheng.li@eu.citrix.com>