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
Merge "Port volumes extension to work in v2.1/v3 framework"