Attempt to handle pending callbacks
Attempt to handle pending callbacks

Pending callbacks are those that have been scheduled by the iostream,
either read/write/close) i.e., those been added to the ioloop but have
not yet been run-- these types of callbacks (unlike timeouts) can not
be canceled once they have been added to the ioloop.

This patch keeps track of each switch by storing an identifier (a
timestamp) in a hashtable. This identifier is removed once one of its
callbacks has been called. Further callbacks that reference the same
identifier will not switch greenlet contexts, i.e., the greenlet will
die and its parent will resume.

svrana/gretis