Log additional details of suds faults

When a suds requests results in a fault response, the current
code loses details on that fault in the sequence of exceptions
propagated through the call stack. A NoPermission fault will contain
additional metadata on the privilegeId and object type which
needs to be logged.  The fault string will be propagated with this
fix, along with details of a NoPermission fault.

It is possible 'details' to contain unicode values which is handled by
implementing __unicode__() for VimFaultException.

This functionality was added in Nova with commit
62cb0dc6257daac5ec9fd1a90ee5721e6543dd76 and we need the same thing in
oslo.vmware

Change-Id: Ia7ca46bb3f263211ab1fe37585f183edf00461b1
Merge "Log additional details of suds faults"