Do basic Identity discovery

* Bring in openstack.common.api_discovery to do the basic version
  discovery.
* Add discovery to Identity client to select the client version

This discovery is equivalent to the existing behaviour regarding
default API versions and adds validation to the user-specified
(or default) Identity client version specified.

All of this is necessary to handle the keystoneclient session
bits as its discovery comes _after_ authentication which is
too late here; we need to be able to specify (or discover) the
Identity version used to authenticate.

Change-Id: I3c02e3c6b3519fbd060be140a05f6b1a2f412645
Merge branch 'compute-test-fix' into dt-test
Merge branch 'identity-ec2-tests' into dt-test