Add support for os-assisted-volume-snapshots

This patch adds support for the assisted volume snapshots API extension.
This is used by Cinder to ask Nova to perform a volume snapshot on its
behalf.  It's required when the volume is actually file backed (like
qcow2) and the hypervisor needs to be involved in the snapshot
operation.

Required for blueprint qemu-assisted-snapshots

Change-Id: I50ee9bf92c8de98528638d1724fe35e07bed729e
Python3: Use six.StringIO for io.Bytes()

The newer version of six (1.4.1) provides six.StringIO which
is a fake file object for textual data. It's an alias for StringIO.StringIO
in python2 and io.StringIO in Python3.

Use the fake object where approiate.

Change-Id: I364001933b4f2305ac27b293a9a4a3fec36c8a49
Signed-off-by: Chuck Short <chuck.short@canonical.com>
Python3: Fix traceback while running unit tests

While running the unit tests with python3 the following
traceback appears:

TypeError: can't use a string pattern on a bytes-like object

This is due to the way that python2 and python3 handles unicodes.

Change-Id: I401f1cefed69780073222cae98d8da4c3d8031a8
Signed-off-by: Chuck Short <chuck.short@canonical.com>
Unittests added for client v1_1

 Unittests test_client_set_management_url_v1_1 and
 test_client_get_reset_timings_v1_1 added.
 New methods covered:
 * client.set_management_url()
 * client.get_timings()
 * client.reset_timings()

Change-Id: I46cac01864a11fbaffc284d26f63b8e00f2631f0
Merge "Add support for os-assisted-volume-snapshots"
Merge "Python3: Fix traceback while running unit tests"
Merge "Python3: Use six.StringIO for io.Bytes()"