Convert service v3 plugin to v2.1 API

Changes required to have v3 plugin natively support the V2.1
API

Remove the 1st level dict of service in the body param

Partially implements blueprint v2-on-v3-api
Co-Authored-by: Chris Yeoh <cyeoh@au1.ibm.com>
Change-Id: Ida59f00e3cf4640b63add1d6350aa7c30529807e
VMware: fix exception when multiple compute nodes are running

A number of operations in the VMwareVCDriver class first validate
that instances node is the cluster that is mapped to the compute
node. This is problematic when the compute nodes have different
configurations, for example, each compute node is mapped to a
different cluster.

In this case many operations that are just performing instance operations
will fail. This patch ensure that all instance operations that do not
require a cluster or volume will make use of the base _vmops class.
This is due to the fact that it only requires the instance details
to interface with the VC and there are no specific cluster operations.

Change-Id: I2bc38a480f2feb12ea41e7d28f80b29dd49a79b8
Closes-bug: #1345460
Merge "Convert service v3 plugin to v2.1 API"
Fix use of extract_flavor() in hyper-v driver

This converts a use of extract_flavor() in the hyper-v driver to
instance.get_flavor().

Related to blueprint flavor-from-sysmeta-to-blob

Change-Id: I91d568e6eb97965bd4f406d0c0f047011ec50b78
Make metadata server use Instance.get_flavor()

This removes the use of extract_flavor() from the metadata server.

Related to blueprint flavor-from-sysmeta-to-blob

Change-Id: I06373f02a693d5fa9ad5acfe4e268a5fdbd5bac8
Make network/* use Instance.get_flavor()

This makes the nova-network and neutron API modules use the
get_flavor() helper to avoid dependence on flavors being in
system_metadata.

Related to blueprint flavors-from-sysmeta-to-blob

Change-Id: I11033a755e577031773bf01634f020455844e625
Merge "VMware: fix exception when multiple compute nodes are running"
Merge "Fix use of extract_flavor() in hyper-v driver"
Merge "Make metadata server use Instance.get_flavor()"
Merge "Make network/* use Instance.get_flavor()"