attempt to cache probe results in celery
catch exceptions in check_monitoring from socket
figure out the socketio-celery-rabbitmq plumbing

* The fanout rabbitmq exchange type means that publishers publish
  to the exchange, and the exchange relays the messages to all
  bound queues.
  * Change every web socket session to use a randomly named queue,
    so that all sessions recieve the messages in the user exchange.
* Don't declare exchange in publish, only in subscribe
  and set it to auto delete if no queue is attached to it
  - This way the publisher (celery) can know if there are
    any websockets waiting for results.
* Properly close the amqp connection and remove the queue in
  update_subscriber socketio handler, when the socket session dies.
* Many other small changes and fixes.