util: format as Error if instanceof Error
crypto: add SPKAC support

Implements new class 'Certificate' within crypto object for working
with SPKAC's (signed public key & challenge) natively.
doc: crypto: document SPKAC additions

Document the SPKAC functionality that was added in commit 7f66e44.
Revert "crypto: add SPKAC support"

This reverts commit 7f66e44dc1e90e7abda2a9ed02d7e8163e1f6358.
Revert "doc: crypto: document SPKAC additions"

This reverts commit aa94450b31a28d6251df3b88fdd652ddd1e67a69.
crypto: add SPKAC support

Implements new class 'Certificate' within crypto object for working
with SPKAC's (signed public key & challenge) natively.
doc: crypto: document SPKAC additions

Document the SPKAC functionality that was added in commit 7bf46ba.
http_parser: expose pause/resume method for parser
http: provide backpressure for pipeline flood

If a client sends a lot more pipelined requests than we can handle, then
we need to provide backpressure so that the client knows to back off.
Do this by pausing both the stream and the parser itself when the
responses are not being read by the downstream client.

Fix GH-6214
debugger: make busy loops SIGUSR1-interruptible

Commit 30e5366b ("core: Use a uv_signal for debug listener") changed
SIGUSR1 handling from a signal handler to libuv's uv_signal_*()
functionality to fix a race condition (and possible hang) in the
signal handler.

While a good change in itself, it made it impossible to interrupt
long running scripts.  When a script is stuck in a busy loop, control
never returns to the event loop, which in turn means the signal
callback - and therefore the debugger - is never invoked.

This commit changes SIGUSR1 handling back to a normal signal handler
but one that treads _very_ carefully.
debugger: fix SIGUSR1 bootstrap race condition

Before this commit, the SIGUSR1 signal handler wasn't installed until
late in the bootstrapping process and we were prone to miss signals
sent by other processes.

This commit installs an early-boot signal handler that merely records
the fact that we received a signal.  Once the debugger infrastructure
is in place, the signal is re-raised, kickstarting the debugger.

Among other things, this means that simple/test-debugger-client is
now _much_ less likely to fail.
dns: rename domain to hostname

A follow-up commit will save the domain name on the request object but
we can't call that property 'domain' because that gets intercepted by
src/node.cc and lib/domain.js to implement the node.js feature of the
same name.

To avoid confusion, rename all variables called 'domain' to 'hostname'.
dns: set hostname property on error object

Make debugging and logging easier: when a DNS lookup for a hostname
fails, set the hostname as a property on the error object.

Fixes #5393.
cpplint: disallow comma-first in C++
cpplint: disallow if one-liners
http: add statusMessage

Now the status message can be set via req.statusMessage = 'msg';
src: add accessor method for debugger_running flag

Reason: If a developer wants to implement a module that needs to know
debug mode status.

Example: We use a module process-watcher which monitors nodejs processes
for endless loops and other abnormal behaviours and kills it. We would
not want it to kill a worker if it in debug mode. To ensure that we have
a cpp module, monitr, that sends the debug mode status to process-watcher
(https://npmjs.org/package/process-watcher).
src: add support to toggle debug mode

Reason: Developers need to switch in and out of debug mode on
production hosts that are running node applications.

Earlier, SIGUSR1 signal would put node into debug mode
but there was no way to come out of it. With this change you can use
SIGUSR1 to come out of debug mode if debugger is already running.
test: add test to ensure debug mode toggles

Update tests to verify that disable debug mode works
src: add async handler for debug signal

Reason: Decouple debug signal handling from dispatch debug
messages. Earlier DispatchDebugMessagesAsyncCallback was getting
called by SIGUSR1 as well as DispatchMessagesDebugAgentCallback.
This would not after adding else case for adding the ability
to disable debug. Hence, add separate function,
DebugSignalHandlerAsyncCallback, for handling debug signal.