Change v3 flavors to v2.1

This patch changes v3 flavors API to v2.1 and makes v2
unit tests share between v2 and v2.1.

The differences between v2 and v3 are described on the wiki page
https://wiki.openstack.org/wiki/NovaAPIv2tov3.

Partially implements blueprint v2-on-v3-api

Change-Id: I1e52c034a8c50fde3aa31e1e79c8f113424fd2e1
libvirt: reworks configdrive creation

This refactor the creation of the configdrive by using
the same code schema as local/ephemeral/swap/disk.

Now this is the imagebackend that creates the configdrive like any other
disk attached to VM. This ensures that the configdrive file is created
where the imagebackend expect it.

This also removes the assumption that the configdrive was always created
at the right place, that was not true for rbd and lvm.

Related-Bug: #1361840

Change-Id: Ia03a83d593794c8b2a644360790cb15de9dea6e9
Convert v3 certificate API to v2.1

This patch changes v3 certificate API to v2.1 and makes v2
unit tests share between v2 and v2.1.

The differences between v2 and v3 are described on the wiki page
https://wiki.openstack.org/wiki/NovaAPIv2tov3.

Partially implements blueprint v2-on-v3-api

Change-Id: I8e6556dffbc14334f7ec1b9db38fbbfe2387bef0
Merge "Change v3 flavors to v2.1"
Merge "libvirt: reworks configdrive creation"
Merge "Convert v3 certificate API to v2.1"