proxy: memory storage driver + tests + fixes

Adds a memory storage driver to marconi-proxy. This is ideal for
testing storage implementations.

Furthermore, unit tests are added for the storage layer. These tests
check the fundamental behavior of the proxy storage drivers and
mirrors the approach used by marconi/queues/storage.

The storage interface has also been updated. The old variant keep
round robin indices in storage. I found that this was a Bad Idea. This
patch removes this design flaw from the
implementation. Consequentially, many of the helper functions were
greatly simplified. See: utils/node:weighted_select and
utils/round_robin:Selector.

The last set of changes relate to the transport layer. They are as
follows:
- redis has been torn out of the transport
    * storage is no longer hard-coded
- partition and catalogue controllers are passed as needed to
  resources
- resources round-robin per request, rather than only once on queue
  allocation
- terminology update: nodes -> hosts

Change-Id: I78863f7437dd9eec011cdfe7962fd88be23a3975
Implements: blueprint placement-service