Fixes Hyper-V driver WMI issue on 2008 R2

Trying to assign properties on default Hyper-V resource setting data
WMI objects results in an exceptions before Hyper-V 2012.
Cloning the objects before assigning them solves the issue.

A similar approach was previous already implemented and has been
incorrectly removed during a refactoring.

Co-Authored-By: Robert Tingirica <rtingirica@cloudbasesolutions.com>
Change-Id: If119154f8b4756be9f98c8acd376003c52eff44f
Closes-Bug: #1356884
Extends use of ServiceProxy to more methods in HostAPI in cells

Cells prepend full cell path to the service ID before returning any
service related info. This means service ID is non numeric and can't
be cast into Service objects.  In cells, service_get_all method
in HostAPI (which is used to display list of services) strips out
the cell path from received IDs, creates Service objects using
remaining numerical ID and uses a ServiceProxy to associate cell paths
Service objects.
However, other service related methods do not do so. They include:
 - service_update (Used for enabling/disabling services)
 - service_get_all_by_host (Used for evacuation)
These functions try to cast received service info (with alphanumeric
service IDs) into Service objects and fail with a ValueError.
This leads to API cell throwing Error 500 for service-enable,
service-disable and evacuate.
This patch extends the ServiceProxy usage to both these methods. It
also changes the corresponding HostAPI tests.

Change-Id: Iff2707602d5fabfbe8438150b5ad74b3c31bb011
Closes-Bug: 1361180
Add CHAP credentials support

Currently, the Hyper-V driver ignores the according CHAP
credentials when logging in iSCSI targets. For this reason,
attaching volumes fails when CHAP authentication is enforced.

This patch adds one way CHAP authentication support.

Change-Id: Id4d8800ae08dc24a01fc146f65c68b0b41d49e3d
Sync server_external_events v2 to v2.1 Part 1

This syncs commit I18062b81e50c722ec96b4296ac39384493683ae3 which
was made to the v2 version of os-server-external-events but not
the v2.1 version.

Partially implements blueprint v2-on-v3-api

Change-Id: If0657744fac021f635ce292142c82239751ae2f2
Sync server_external_events v2 to v2.1 Part 2

This syncs commit 5e4a5f0d8c62ca6e94ae6db16e9fbe0428805158 which
was made to the v2 version of os-server-external-events but not
the v2.1 version.

Partially implements blueprint v2-on-v3-api

Change-Id: I458b28b1f3cf161b6d40ce3fd8b3a9c5d090bde7
Merge "Extends use of ServiceProxy to more methods in HostAPI in cells"
Merge "Fixes Hyper-V driver WMI issue on 2008 R2"
Merge "Add CHAP credentials support"
Merge "Sync server_external_events v2 to v2.1 Part 1"
Merge "Sync server_external_events v2 to v2.1 Part 2"