Removed run_once function
Refactored run_until_complete

It no longer takes a timeout argument
Renamed Timer to TimerHandle
Refactored mechanism for running callbacks

Use an Idle handle instead of a combination of a Check handle
and an Idle handle, simplifies the code
Stop loop if an exception occurrs while processing callbacks