Port config drive API to v3 Part 1

This changeset only copies the v2 files (implementation and test)
into the appropriate v3 directories unchanged. The copy as-is
will not be loaded by either the v2 or v3 extension loaders. The
second changeset will then make the changes required for it to
work as a v3 extension.

This is being done in order to make reviewing of extension porting
easier as gerrit will display only what is actually changed for v3
rather than entirely new files

Partially implements blueprint nova-v3-api

Change-Id: I9a4b31ef06bbf05c25b4a5e96f5cee2ce4d80d2f
Port config_drive API to v3 Part 2

Ports the config_drive extensions and the corresponding unittests
to the v3 framework. Moves the commented out tests from the v3
version of test_servers to the config drive extension unittests.

Adds entrypoint infrastructure to allow extensions to extend the way
that the servers extension performs xml deserialization so extension
specific deserialization does not require changes to the core servers
extension. The blacklist/whitelist settings for extensions generally
also apply to server extension point loading.

Also merges in updates to config drive functionality which were applied
to the v2 API while this changeset has been in review

https://review.openstack.org/#/c/31314

Partially implements blueprint nova-v3-api

Change-Id: Ic8b75cc8b353a6e22cbaf354317a78c4df8d937e
Port scheduler hints extension to v3 API Part 1

This changeset only copies the v2 files (implementation and test)
into the appropriate v3 directories unchanged. The copy as-is
will not be loaded by either the v2 or v3 extension loaders. The
second changeset will then make the changes required for it to
work as a v3 extension.

This is being done in order to make reviewing of extension porting
easier as gerrit will display only what is actually changed for v3
rather than entirely new files

Partially implements blueprint nova-v3-api

Change-Id: I992b8ee243f8ccc436f4a995c34d8b8e97ff7fa9
Merge "Port config drive API to v3 Part 1"
Merge "Port config_drive API to v3 Part 2"
Merge "Port scheduler hints extension to v3 API Part 1"
Merge remote-tracking branch 'm_src_repo/citrix-fixes' into build-temp