Implement Keystone V3 create_token request

Change-Id: Iba75203595f28939d2566586ff4a13c00ae827ef
Create base request test

Change-Id: If9330b3ebd89bf7dd98138db85beccbc91437c2c
Store auth response body and headers

Keystone V3 provides the token in the response headers which
was previously discarded by Session after authentication. This
modifies that behavior so that the headers are also preserved.

Change-Id: Iedae5ccf06253b5b6fa95dda5861ec3f04b081ef
Modify files to use new session data format

Change-Id: If0743afb245a4255062258bbcea297ef276b0fa7
Differentiate between Keystone V2 and V3 session data

This allows openstack request classes to know the difference between
Keystone v2 and v3 auth information (aka session data). This logic is
kept within a base request class that all other OpenStack request
classes inherit from. No further changes are required from inheriting
request classes.

Change-Id: I881cb45516814928249825c4dbee77bc5a5840f7
Extract base_url from V3 style session data

Change-Id: Ia75ba81ec3eff4472fa907b55a7681ff19d4a31e
Improve Openstack::Provider's infer_version method

* If there are multiple API entries for a given service, Provider will
throw an error and ask the user to be more explicit.

* It now handles Keystone V2 and V3 style session data

Change-Id: If0d46a22c6ca55413002445b0c4bf97234098f66
Use auth_service's api_version

Previosly, the assumption was that it will always use KS v2.0
api. This change actually uses the value put in there.

Change-Id: Id251ed469ae9831a0de9d6e080b6a29b1dad219b
Suffix, not prefix

Change-Id: I521ee8c0c18fc5361f5a0da60e14e13c1d6bae17