Introduces a mechanism for switching between API versions,
and implements it in a proof-of-concept fashion for the
Keystone v3 API. Converts the existing Users and Projects
API methods to use it.
This changed some method signatures, and therefore altered
a number of views and tests. However, all code related to
the version cahnges is contained in the api.keystone module.
This seems like a sane process going forwards.
Future TODOs are marked in the code, including auto-detection
of API versions and better endpoint URL construction.
Partially implements blueprint api-capability-detection
Change-Id: Ied04200fe6c257aac2241d36628965a3bb6658b9