XenAPI: Allow use of clone_vdi on all SR types

All XenServer SR types support VDI.clone - even if they perform
an internal VDI.copy.  Always use the clone function if COW is
enabled.

Change-Id: I85c580fba43d3bb52149626419d0f0c03ed69145
Add VirtualInterface object

Add new objects: VirtualInterface and VirtualInterfaceList.  These are
needed for converting nova-network over to use objects.

Part of blueprint nova-network-objects

Change-Id: Idab38a2a9bd8737fcc8e112759c539b7ebad4df9
Nova Docker driver must remove network namespace

The docker hypervisor creates for each container a network
namespace which represents the nova network. This network
namespace must be removed/destroyed when nova instance will
be destroyed in order to cleanup the machine properly.

Change-Id: I6fa306d06fb16f8ceddb06e22566974237082759
Closes-Bug: 1261007
Add instance faults during live_migrate errors

When there is an error in the compute manager relating to
live-migrate, this change ensures that an instance fault is
recorded to help debug any issues.

We also need to look at better reporting of errors to users,
but this is not in the scope of this small change.

Change-Id: Ib4f0d0aea64468a4a1495b0318fc531a7d0d4eaa
Re-write sqlite BigInteger mapping test

This test makes sure that our hook that compiles BigInteger() into
INTEGER for sqlite instead of BIGINT is working as we expect.
Unfortunately, we've seen some problems running the sqlite command to
check the schema.

This patch rewrites the test to only use sqlalchemy APIs and avoid
calling out to the sqlite command for verification.

Change-Id: Id3964d0dd5b0ddf08ab745d6878840ff06b2f0dd
Closes-bug: #1271331
Make test_poll_volume_usage_with_data more reliable

This test includes 2 calls to time.time().  It assumes that the result
from the second call may be greater than the first.  This isn't
definietly true and we see periodic failures of this test in the gate as
a result.

Change the test to not worry about the specific time value that gets
set.  We set _last_vol_usage_poll to 0 before calling the function under
test.  We really only need to check that it got set to some value after
calling the function under test.  This tweak should make the test pass
consistently.

Change-Id: I6c01d2958cf671c29622562689a15ca1ddea0a3c
Closes-bug: #1270693
Merge "Re-write sqlite BigInteger mapping test"
Merge "Make test_poll_volume_usage_with_data more reliable"
Merge "Add instance faults during live_migrate errors"
Merge "Nova Docker driver must remove network namespace"
Merge "Add VirtualInterface object"
Merge "XenAPI: Allow use of clone_vdi on all SR types"