fix: do not duplicate queues across partitions

This patch fixes a proxy bug that allows queues to be duplicated
across partitions. This happens because the catalogue isn't checked
for project/queue existence before forwarding requests to a marconi
partition.

Caching is also added to queue on_put to quickly determine if a
particular project/queue exists.

A unit test suite is added that verifies that this has been fixed, as
well as checking various properties on the queue resource.

Closes-Bug: 1234849
Partially-Implements blueprint placement-service

Change-Id: I2e8ca29abd58ecb6f33f0f296119e341504ea3fd