Process all callbacks using an Idle handle

This has the advantage that since the Idle handlealready prevents the
loop from blocking for i/o, we no longer need the ticker. In addition,
no workarond is needed for Windows for libuv issue 796.