Use ZMQ to notify new events. Fix #53

With Escalator, in order to detect new events, we were making
a request every 0.1s in the Referee and the Dealer.

Now, events are still stored in the DB, but when a new event is
storred, a notification is sent to the Dealer or the Referee, so
we don't need to do periodic requests anymore.
Add at_exit helper in utils.
Add Escalator.close. Close if context terminated.

Escalator.close can be used to close the client in
a blocking (lock) or non-blocking way. If it fails
to close due to locking, another thread will
raise EscalatorClosed as soon as the context is
terminated.

The context can now be given in parameter to the
client.
Referee: Use one publisher per event.
Close the Referee properly.
Plug: Lock the publisher
Close the drivers properly