Added Loop.handles property

Returns a list of handles in the Loop
Adapted to API changes in uv_fs_event handle
Keep handles alive when they are started

All handles that have start / stop methods get their refcount increased
when start is called (just once, regardless of the number of times start
was called) and decreased when stop is called.

This means that a timer can be started without holding a reference to it
(for example) and the callback will be called. Before this change the
timer would be deallocated and closed instead.
Added test for refcount refactor
Fixed leak when returning loop handle list
Added test case for Loop.handles function and refcount refactor
Updated documentation