fix: Enable reading from secondaries in the MongoDB driver.

This patch changes the MongoDB driver so that it will use
MongoReplicaSetClient instead of MongoClient when a
replicaSet is specified in the connection URI. Testing
revealed that this is necessary for readPreference to be
respected.

Change-Id: I3c1a2a166c5dd2c857cd52a2d1766437a9e4a940
Make use of simplejson in the transport layer.

simplejson is strictly compatible with the standard json library
(for example, the big integer support), and use a C backend to boost
the performance.

Change-Id: I7ba0b8b5fa7bcadde5c6e88654bad1e08ccde11a
Improved mongodb's storage queries and indexes

The patch reduces the number of indexes needed and changes how data is
stored.

Major changes:
    * Messages expire now contains claim's expire for messages whos
    expiration time is less than claims.
    * New messages now contain a fake claim object that allows the
    driver for querying using that field even when the message hasn't
    been claimed. (see `active`)

Implements blueprint storage-mongodb

Change-Id: Ia932d15fb3a3e0e7c50d667fae330cb031e34a8a
Merge "fix: Enable reading from secondaries in the MongoDB driver."
Delete messages when a queue is deleted

Implements blueprint storage-mongodb

Change-Id: If4e4073af7e613b3483e9ccbe42cf808502ae9e5
Merge "Improved mongodb's storage queries and indexes"
Merge "Delete messages when a queue is deleted"
Queue mgmt picks up the faulty driver in WSGI.

Change-Id: Ib0b6d0d2aac86d855f890ecba0f4c34a3cb09cd9
Implements: blueprint transport-wsgi
Bugfix: Do not claim expired messages in SQlite.

Change-Id: I346e79cf7269fb2452a0bec22a61ad7fd2e9935b
Count "claimed" and "free" msgs in Queue stats.

Change-Id: Ic8e2a4490d40a0745be458766bbe4c77220f6869