Fix AttributeError(s) from get_v4/6_ips_by_interface

Add some defensive code to prevent AttributeError especially
when virtual_interface_get_by_uuid returns None. Add some basic
tests for good and bad data returned from
virtual_interface_get_by_uuid

Change-Id: I0ee1bb2087a6ed2619ac343534e4ade84e08d9bd
Closes-Bug: 1246087
Remove used_limits extension from the V3 API

Remove the used_limits extension from the V3 API because
it shows usage for limits which are no longer going to be displayed
by the limits extension. See https://review.openstack.org/#/c/39872/
The limits are not being displayed there because they are already
available through the quotas extension.

Although the quotas extension currently only displays the quota limit
and not usage, the following proposed changeset adds display
of usage: https://review.openstack.org/#/c/32303/. And this is done
in a way which is much more consistent in terms of naming and interface
than used_limits does.

So we no longer need the used_limits extension

Partially implements blueprint nova-v3-api

Change-Id: I8ec1f300335ca4fc3b86323cc3af6bc1591da7bb
ComputeFilter shouldn't generate a warning for disabled hosts

Disabling a service is a normal operation, so this state should
not be included in the same log statement as a host that fails
the service_is_up() check.

A service which is enabled but not up deserved a warning rather
than debug entry.

By separating out the checks we also avoid the service check on
disabled hosts.

Change-Id: I1a398bc033ebe71f42ac117af7dae39502aceede
Closes-Bug: 1254356
Change conductor live migrate task to use select_destinations()

Live migration currently makes calls to scheduler select_hosts() to select
a suitable target host if none is given. Other tasks instead queries the
scheduler by making calls to select_destinations(). Since the latter call
basically returns the same result, and because live migration is the only
task using select_hosts(), changing to select_destionations() means the
scheduler would no longer need the select_hosts() call.

Change-Id: I984ccc2317184ba8f6b292c91717f52a81cf73d7
Minor change for typo from patch 80b11279b

In the patch 80b11279b, there is a typo, this patch just fix it.

Change-Id: Ie84d83183b13f99ffb33213684b9d9b8a4e59b42
xenapi: Update VM memory overhead estimation

Update the VM memory overhead estimation formula to be more accurate
based on a more comprehensive survey of VM overhead values found in
the Rackspace public cloud's XenServer hosts.

The old formula was under-predicting overhead in some cases, especially
when VMs had a larger number of VCPUs.

Closes-Bug: 1257874

Change-Id: I338c72145fe41dae094516f7f832f15efc46a530
Make compute support monitors and store metrics

According to the 'nova.conf', compute can call the
appropriate monitors and store metrics into compute nodes
as a json dictionary.

This is part of the blueprint utilization-aware-scheduling and
the blueprint generic-host-state-for-scheduler.

Change-Id: I2d9bde7ae838f2588c19874d87de6653859b3ac4
Merge "ComputeFilter shouldn't generate a warning for disabled hosts"
VMware: fix disk extend bug when no space on datastore

In the event that thete is no space on the datastore then ensure
that the disk extension is cleaned up accordingly.

A number of files would be left behind on the datastore.

Change-Id: Ica9daf9151e4fb1874fa8b1d7247080860ef4ae2
Related-Bug: #1255355
Merge "Remove used_limits extension from the V3 API"
Merge "xenapi: Update VM memory overhead estimation"
Merge "VMware: fix disk extend bug when no space on datastore"
Merge "Minor change for typo from patch 80b11279b"
Merge "Change conductor live migrate task to use select_destinations()"
Merge "Make compute support monitors and store metrics"
Merge "Fix AttributeError(s) from get_v4/6_ips_by_interface"