Add support for reporting backtraces via the SMAPIv1

- Xapi supports receiving XenAPI "Failure" results as well as XMLRPC
  Fault codes. Use this to return an SR_BACKEND_FAILURE_WITH_BACKTRACE
  value.
- When throwing a XenError, capture the current backtrace so it can be
  reported upwards
- When we catch an unexpected error at the top level, capture the
  backtrace and return a general backend error (which is how xapi would
  report it anyway)

We still log exceptions to the SMlog as before. The effect of this
patch is to give the backtraces also to Xapi which is able to produce
a single consolidated backtrace for the whole operation.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>