populate local-ipv4 address in config drive

Currently the ec2 metadata in config drive does not include the
local-ipv4 address, because the address is not passed in when using
config drive.

This change uses the fixed_ips in network_info to populate the address
if the address was not passed in.

Fixes bug 1221664
Change-Id: I1b289bbbd7ebe103342909079d2488cf1dfbf472
Use `versionutils.is_compatible` for Nova Objects

Oslo's check is designed to support version checking for a number of different
existing use-cases, including this one.

Related-Oslo-Commit: d7d74a752e34d5249fa47c8e8252da491d46012a
Change-Id: I8e03c7781330b02deb7af815d68538b5c0245c4d
Make XenAPI use Aggregate object

This makes the XenAPI driver use the Aggregate object for its work,
and avoids the need to call back through virtapi to conductor
directly. It also allows us to convert the two aggregate-related
compute manager methods fully to new-world objects.

Related to blueprint compute-manager-objects
Related to blueprint virt-objects

Closes-bug: #1232179
Change-Id: Ib38ab0e4d6feefebda37888f150752167474b693
Remove aggregate metadata methods from conductor and virtapi

The aggregate_metadata_add() and aggregate_metadata_remove()
methods are no longer needed in virtapi and conductor. This
patch removes them from the former and deprecates them in the
latter. Also, aggregate_get_by_host() is no longer needed in
virtapi, so remove it from there.

Related to blueprint compute-manager-objects

Change-Id: Ia057dcc43c555187a4a1466a9e748b978c46d4a4
Merge "Use `versionutils.is_compatible` for Nova Objects"
Merge "populate local-ipv4 address in config drive"
Merge "Make XenAPI use Aggregate object"
Merge "Remove aggregate metadata methods from conductor and virtapi"