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`. Set a 
default region (iad) if no `OS_REGION_NAME` is provided, and handle
invalid regions.