feat(mongodb): Partition data across multiple databases

This patch causes data to be partitioned across multiple databases in
order to reduce writer lock contention. The "queues" collection is
isolated in its own database, while the messages collection is partitioned
across several other databases. The number of partitions is configurable.

For example, if the number of partitions is set to 4, these databases
will be created in MongoDB:

    marconi_queues
    marconi_messages_p0
    marconi_messages_p1
    marconi_messages_p2
    marconi_messages_p3

Implements: blueprint mongodb-multidb
Change-Id: I399f4a39e5377a381aef489b046bc14155ccb75b
Merge "feat(mongodb): Partition data across multiple databases"