implement longpoll

When the url /longpoll is requested, the request greenlet creates an event object,
and wait until the event is set to respond. The event object is set by the background
greenlet that is subscribed to the zmq publisher.

The event object is put in a global queue, and is removed from the queue automatically
when a message arrives and the queue is iterated.