Couple of notes:
* libuv assignes its own signals before the loop is run; but it doesn't
properly restore the Python ones
* We try to handle SIGINT in a special way -- when Handle or TimerHandle
are running -- we execute Python's SIGINT handler; when we're in libuv
context, we forward the signal to the libuv's signal handler.