Fixed performance issue introduced in v0.0.11

Reverted to installing DebugEventListener only after a SIGHUP is
received.  This requires us to enter the default node isolate,
since `SetDebugEventListener[2]` functions can be called only from
inside a valid v8 isolate.  Unfortunately, this likely means
that an infinite loop will no longer be able to be broken into
reliably.

In addition, to restore performance, we reset the listeners to
NULL after (optionally) printing the stacktrace.
The primary reason is that DebugBreak() is not guaranteed to be signal-safe.  It may currently be (in v8), but like many pieces of code, signal-safe execution may easily be violated.  See Ben Noordhuis' comment here: https://groups.google.com/d/msg/v8-users/hRWWD_TRh_0/pLnrJF_QzzIJ

Also, in general, the list of things you can do from inside a signal handler is a very short list (e.g. even using std::cout is not strictly allowed).

The POSIX compliant way is to set just a `volatile sig_atomic_t` type variable, and then check for that being set [to indicate a signal has been sent] inside the main thread of execution.  See the section on _Atomic Type_ and _Signal-Safe Functions_ at this web page:  http://www.linuxprogrammingblog.com/all-about-linux-signals?page=3.