Initial implementation of idle timer
Fix minor bugs on idleTimer

- Use accessor in start/cancel methods, since it is lazy loaded
- Check _idleTimer in disconnectSocket to avoid a NULL parameter to dispatch_source_set_timer