Use v2.1 URLs instead of v3 ones in API unit tests

Now v2.1 API unit tests use fake.wsgi_app_v3() and they specify v3 URLs.
This patch adds wsgi_app_v21() for using v2 URLs in v2.1 API tests and
changes URLs in unit tests.

Partially implements blueprint v2-on-v3-api

Change-Id: I5cdd7dd1d435ab0e4e093168f01e96f8dac52e8c
Change v3 version API to v2.1

This patch changes v3 version API to v2.1 and makes v2 unit tests
share between v2 and v2.1.
v2.1 API does not support XML format. Unit tests related to XML
don't work against v2.1.

Partially implements blueprint v2-on-v3-api

Change-Id: I7abadb0c9082b9e90a98938967f0e27d1a2fa766
Add API schema for v2.1 "create a server" API

By defining the API schema, it is possible to separate the validation
code from the API method. The API method can be more simple.
In addition, a response of API validation error can be consistent for
the whole Nova API.

Partially implements blueprint v3-api-schema

Change-Id: Ic17d2227909c9180ca86c9d578dad4c73ec57dfc
Port limits extension to work in v2.1/v3 framework

Ports v2 limits extension and adapts it to the v2.1/v3 API
framework. API behaviour is identical with the exception that
there is no support for rate limiting since no one uses that
seriously anyway.

- unittest code modified to share testing with both v2/v2.1
- Adds expected error decorators for API methods

Partially implements blueprint v2-on-v3-api

Change-Id: I072d364f4d2a92a02801862435f11417956d2dc0
Port volumes extension to work in v2.1/v3 framework

Ports v2 volumes extension and adapts it to the v2.1/v3 API
framework. API behaviour is identical with the exception
that there is no support for XML. Also

- unittest code modified to share testing with both v2/v2.1
  where appropriate
- Adds expected error decorators for API methods

Note that there will be further code cleanup in the future
but the code currently is mostly as-is from the v2 codebase.

Partially implements blueprint v2-on-v3-api

Change-Id: If2a9dd1f5233812a1177b54ded6f0ae115c54e97
Convert server_usage v3 plugin to v2.1 API

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

The parameters is changed from os-server-usage to OS-SRV-USG

Partially implements blueprint v2-on-v3-api
Co-Authored-By: Chris Yeoh <cyeoh@au1.ibm.com>

Change-Id: I4a4ebe533f8910a29b54d6ec9554cc151af492d1
Merge "Add API schema for v2.1 "create a server" API"
Merge "Port volumes extension to work in v2.1/v3 framework"
Merge "Convert server_usage v3 plugin to v2.1 API"
Merge "Port limits extension to work in v2.1/v3 framework"
Merge "Use v2.1 URLs instead of v3 ones in API unit tests"
Merge "Change v3 version API to v2.1"