Get service endpoints from catalog

* Add catalog to TroveContext
* Populate context with catalog in middleware
* No new keystone calls made
* If *_url from conf available, it overrides catalog
* Following clients now use service_catalog:
    * cinder
    * heat
    * nova
    * swift
* Add new conf options (necessary to maintain parity with flexibility
  of *_url in conf):
    * os_region_name
    * cinder_service_type
    * heat_service_type
    * nova_service_type
    * swift_service_type

Closes-Bug: #1222891
Change-Id: I669bfd9fe63e538f9412f53723c6606b04c2e2ae
Merge "Get service endpoints from catalog"