unix: req queue must be empty when destroying loop

Assert that the request queue is empty when destroying the event loop.

Should catch errors where people call uv_loop_delete() when there are
still in-progress work requests (for example.)
unix: move loop functions from core.c to loop.c

Move uv_default_loop(), uv_loop_new() and uv_loop_delete() to loop.c.