feat(proxy): listing opts returns lists

Closes-Bug: 1233277

Change-Id: I46e021b04d8245002273db240bbe68f2e4457be7
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
fix: listing queue fails when detailed=True

Change-Id: Ibda6bf0ee500b1e21893c1433bf3b839af1cef22
Partially-Closes-Bug: 1234481
Merge "feat(proxy): listing opts returns lists"
Merge "fix: listing queue fails when detailed=True"