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