use service catalog if HEAT_URL not provided
Splitting token retrieval into two parts: get the auth document, and
return the token. Added a new module catalog to retrieve and search the
service catalog, and logic to make sure if we don't have a HEAT_URL
environment variable, that we do have an OS_REGION_NAME we can search
for. Also set a default region if none is provided, and handle invalid regions.