MongoDB storage driver

This supersedes #94 (cc: @iampersistent). 
@henrikbjorn: I know you asked about this in https://github.com/bernardphp/bernard/pull/94#discussion_r9068167. I don't have any ideas for removing duplication between the three drivers that do this (looks like Doctrine DBAL, filesystem, and MongoDB), but I did have some concerns about the loop in general. As-is, it seems impossible to simply poll the queue without blocking. This is noticed in some tests where we call `popMessage()` on an empty queue and effectively slam the database for five seconds.

Ideally, I'd like to be able to specify zero as my `$interval` to do a single query. This would require changing the `while` loop to a `do while`. Thoughts?

Do other drivers block on `popMessage()` when the queue is empty? If not, perhaps `$interval` should always default to zero so users can handle polling on their own.