Coroutine cleanup

Created a coroutine_context that manages a coroutines state and can be passed around to yield and resume a coroutine after initially executing it.

Testing of libuv timers in the core for coroutine scheduling.