opt: add hints to make delete/claim checks faster

Adding in a few hints so that the mongodb query optimizer can make
faster decisions in certain message retrieval cases.

Change-Id: Ia80024a9b35f9e2a9aecaedf7162076ba8667d12
cleanup: remove proxy cruft

This patch removes some configuration files that were leftover from
the days of the proxy. Also, it removes mention of the proxy from
common.transport.version.

Change-Id: I88f7d6490f5b0d0bdbdc827c69a72180ab6c3a12
fix: mongodb tests consume storage like crazy

This patchset addresses a problem where _purge_databases wasn't being
called in the storage tests for mongodb. This was consuming about
~19GB of storage per full suite run.

The problem was caused by _purge_databases not being overridden by the
MongodbMixin class. It was a case of the diamond problem in an
inheritance graph. Here's the summary:

* testing.TestBase defines _purge_databases
* ControllerTestBase is a child of testing.TestBase
* XControllerTest are children of ControllerTestBase
* MongodbTestMixin was a child of object, and reimplements
  _purge_databases
* When MongoXControllerTest was presented with parents:
    - XControllerTest
    - MongodbTestMixin

  The MRO algorithm chose the implementation of _purge_databases that
  was first presented, in this case, the null implementation provided
  by testing.TestBase

The proposed solution for the time being is to have each of the
MongoXControllerTest classes to override the _purge_databases method.

Note: subtyping can get very messy.

Change-Id: Ia1abc4c6ec682f3d176f2093d45139f45f7ac12a
fix: shard test failing

A configuration that is manually registered in this test was causing a
failure because the group 'queues:drivers' no longer exists. The test
was updated appropriately to fix that error.

Change-Id: Ib5857e5b1aa3ef1480d095a2b609688306bb1965
chore: Pass cache into drivers

This patch plumbs storage drivers so they all get a cache instance
they can use at their discretion.

I decided to make cache a required param to the initializers, since
any deployment of Marconi of any significance would likely opt to
enable caching anyway, and the cache library has a default in-memory
backend that can be used for simple deployments.

Note also that both data- and control-plane drivers receive a cache
instance, even though the sharding controllers will not use it
(caching will be done in the sharding data driver instead.) I thought
it would be better to pass cache in both cases so we can share test
code and avoid complicating utils.load_storage_driver(). Also, the
control driver may eventually support operations other than sharding;
cache may come in handy then.

Change-Id: I647791af0d7a5914c30cb2489033ec650a455370
Signed-off-by: kgriffs <kurt.griffiths@rackspace.com>
feat(sharding): Cache shard mappings

This patch modifies sharding.Catalog so that it caches the mapping
between (project, queue) ===> shard. This reduces latency for
all data plane operations when sharding is enabled.

Change-Id: I54714c4e6c0ed78ac302ce86aed9bb72b200052b
Partially-Implements: blueprint storage-sharding
fix(mongo): Delete claimed message fails

This patch adds an additional check on the primary node for the correct
claim ID if it fails to match on the secondary. This takes care of the
case when the claimed version of the message document has not yet been
replicated to the secondary before the client attempts to delete it.

Change-Id: Ia22562532351a36bedc980c7c6041517207b2723
Closes-Bug: #1247297
Merge "chore: Pass cache into drivers"
Merge "feat(sharding): Cache shard mappings"
Merge "fix(mongo): Delete claimed message fails"
Merge "fix: mongodb tests consume storage like crazy"
Merge "fix: shard test failing"
Merge "cleanup: remove proxy cruft"
Merge "opt: add hints to make delete/claim checks faster"