refactor test_catalog

- Tests for "missing" attributes are actually testing with null values,
  not missing keys.
- Not being able to explicitly provide alternative URLs resulting in
  hacky workarounds that can be avoiding by simply exposing kwargs with
  reasonable defaults
- Several tests redundantly asserted the expected response status, which
  is already handled by the test framework

Change-Id: Icadb4927bcf03ca7e79fef1507e419a4932f32a9
Related-Bug: 1250765
Allow caching to be disabled and tests still pass

Skip cache specific tests if caching is disabled.  Cache should only
be disabled to eliminate caching as an issue with tests, but in all
cases tests should pass in either configuration.  The default is
to use caching for all tests.

The caching options can be changed for testing purposes in the
keystone/tests/test_overrides.conf file.  The specific options
and sections that support caching can be located in the
configuration document in the section covering the caching layer.

Change-Id: I7848128aeaf3f578b89ab0b9201c45e00efecf11
Formalize deprecation of token_api.list_tokens

The token_api.list_tokens method should really only be used internally
to keystone.  This has been the case (as per the docstring) since the
Havana development cycle.  This patchset formalizes the deprecation and
slates the public access to token_api.list_tokens to be removed once
Icehouse ships.

bp: deprecated-as-of-icehouse
Change-Id: I30a066d3775e67fd4a84f07dc351fcfd62751045
Sync rpc fix from oslo-incubator

Sync the following fixes from oslo-incubator:

ef406a2 Create a shared queue for QPID topic consumers
e227c0e Properly reconnect subscribing clients when QPID broker restarts

Closes-bug: #1251757
Closes-bug: #1257293

Change-Id: I45257c62168163d2d4ceda994c94ff2d16a27300
Merge "Allow caching to be disabled and tests still pass"
Narrow columns used in list_revoked_tokens sql

Currently the SQL backend lists revoked tokens by selecting all of the
columns, including the massive "extra" column. This places a significant
burden on the client library and wastes resources. We only need the
id/expired columns to satisfy the API call.

In tests this query was several orders of magnitude faster with just two
thousand un-expired revoked tokens.

Change-Id: I04d62b98d5d760a3fbc3c8db61530f7ebccb0a48
Closes-Bug: #1253755
Merge "Sync rpc fix from oslo-incubator"
Merge "Narrow columns used in list_revoked_tokens sql"
Merge "refactor test_catalog"
Merge "Formalize deprecation of token_api.list_tokens"
Sync versionutils from oslo

The latest versionutils contains the deprecated decorator that was
originally developed for keystone.

Change-Id: I34c99de488ac9424e332edce30427f581f5011b1