Add on_watcher_queue_updated callback for loop.

This callback is called when loop's watcher queue changes, when polling
kqueue in new thread, we need to get notified when there are new events
needed to be watched.
Guard against NULL returned by uv_err_name.

The uv_err_name would return NULL on unknown system error, which then would
crash V8 by creating string from NULL.
Build with debug information on OS X.
Change kIsolateSlot to 3.

In Chromium the slot of 0 and 1 have already been taken by blink, in
order to avoid conflicts the slot is changed to 3, which is by default
the largest slot of V8.
Export modules' DSO constructors.

We need to reference DSO constructors to make sure they can actually be
linked to the final binary, see http://git.io/DRIqCg.