feat(api): GET and HEAD methods on queue

To allow

    GET/HEAD /queues/a-queue

gives users an intuitive approach to test whether the queue exits,
while the URI above is returned as the Location header by a queue's
PUT method.

Implements: blueprint queue-get-and-head
Fixes: bug #1207075

Change-Id: Iefd3236a739b1a5d959efb489fc2b966ee893599
Test for bulk delete of messages

This patch adds the test for bulk delete of messages.

Change-Id: I9dc230661cd79e59e066b156eb5334a69826442c
Tests: blueprint message-bulk-delete
Use queue's name and project to get messages

Mongodb's driver currently queries the queue's collection to get queue
id and then filter messages with it. Instead of storing the id, this
patches stores the queue name and the project in the message collection
and use that for querying messages.

It's safe to assume that the queue exists when messages are returned by
the query, however, posts operation will still verify queue's existence.

Fixes bug: #1207018

Change-Id: Iaa7bc3f1300b3349a5cfad5a9f6ecabb2f75e95e
Don't check for active messages

Instead of counting to check whether there are active messages, try to
fetch ids right away and use len on the result. This removes 1 query
from the claim process.

Fixes bug: #1207759

Change-Id: I579d09ed026d0889ded2463d4807154c8259109d
Merge "feat(api): GET and HEAD methods on queue"
Merge "Test for bulk delete of messages"
Merge "Use queue's name and project to get messages"
Merge "Don't check for active messages"