multi-context wip
multi-context startup wip
multi-context security token wip
address MakeCallback() context FIXMEs
node: don't share state with in_tick/last_threw

There was no need to share state between C++ and JS for these two
values. So they have been moved to their respective locations. This will
help performance only a tiny bit, but it does help code complexity much
more.
test: add asyncListener tests

These tests should cover all basic uses of the asyncListener API.
node: add basic asyncListener skeleton

The implementation necessary before other parts of Node can start
calling the asyncListener.
src: add preliminary support for asyncListener

AsyncListener support has been added to ReqWrap, Timers, Events and
nextTick. The listeners will not yet propagate with asynchronous
callbacks called within other callbacks.
src: support for catching nested async callbacks

Async listeners should now propagate through nested callbacks.

Note: This is NOT performance ready. It's simply getting the
functionality to work.
src: fix two syntax errors

First was an improper comparison with bool to int. Second was to "throw
error" instead of "throw new Error".
node: add simple performance enhancement

Until the first asyncListener is loaded, they will remain inactive. This
is largely advantageous to C++, as it is very expensive to check named
Object properties.

This is only a first step. In the end there should be a faster way to
check for these properties and the kActive should be able to toggle when
there are no more possible active listeners in the pipe. Though that
would require knowledge of all listeners attached to callbacks in the
wild.