Create the queue durably

If not specified, bunny defaults to creating queues non-durably.

Durable queues continue to exist after a broker restart.  Without this,
after a rabbit cluster restart, any messages sent to the exchange before
the alert service was restarted (causing it to re-create the queue)
would be lost.

This also showed up that messages weren't being discarded from the queue
in one of the tests because stubbing was preventing the original
"discard" call happening.  Fixed this.
Set channel prefetch to 1

This essentially disables prefetching of messages.  Without doing this,
workers will eagerly fetch messages from Rabbit, potentially starving
other workers of work.
Delete the test queue before running the tests

Now that we've made it durable, old failed tests can leave messages on the queue, causing later runs to fail.
Merge pull request #22 from alphagov/robustness-fixes

Robustness fixes