Add API discovery support

Base API version discovery support plus an Identity-specific class to
handle the qwirks of Keystone.
* BaseVersion has an option to work-around the default public_endpoint value
  being 'http://localhost:%(public_port)s/'; also admin_endpoint.
* IdentityVersion has an option to hack off the legacy '/v2.0' included in
  a majority of the existing deplyoments for auth_url.  This allows the proper
  detection of v3 and a transition for the auth_url to be changed to not include
  the API version.
* Add mock to test-requirements.txt

Partially implements blueprint: rest-client
Change-Id: I2f38960b571d44baca9bb48ba611ab55c31f00c7