Generalize version discovery for re-use
Generalize version discovery for re-use

This will eventually all push down into keystoneauth, but for now we
need it in a few places. Let's just make one method rather than cutting
and pasting it for each service.

Change-Id: I190f3abfc403af337d671e8c420915c009964cf3

openstack-infra/shade,dtroyer/python-openstacksdk,dtroyer/python-openstacksdk,openstack/python-openstacksdk,stackforge/python-openstacksdk,stackforge/python-openstacksdk,openstack/python-openstacksdk,openstack-infra/shade