Set API version request information on request objects

This adds the looking for the X-Openstack-Compute-API-Version
header on REST API requests. If it is found it is parsed and the
version information attached to the request which is passed to
the API code. If the header does not exist then a version of 2.1
is set. If the header is specified but badly formatted a 400 Bad
Request is returned to the client.

Partially implements blueprint api-microversions

Change-Id: I8e73533cb0256b8a9329870714ffacb9893bb4c7