doc: fix formatting in tty.markdown

Fixes #5135.
doc: child_process: document 'error' event

Fixes #5130.
buffer: remove _charsWritten

_charsWritten is an internal property that was constantly written to,
but never read from. So it has been removed.

Removed documentation reference as well.
test: Use 'close' event in simple/test-repl-timeout-throw
openssl: make sed tool configurable

Those poor sods on systems where /usr/bin/sed is a BSD sed can now do
`make -C deps/openssl/asm SED=gsed`.
domain: fix domain callback from MakeCallback

Since _tickCallback and _tickDomainCallback were both called from
MakeCallback, it was possible for a callback to be called that required
a domain directly to _tickCallback.

The fix was to implement process.usingDomains(). This will set all
applicable functions to their domain counterparts, and set a flag in cc
to let MakeCallback know domain callbacks always need to be checked.

Added test in own file. It's important that the test remains isolated.
openssl: disable HEARTBEAT TLS extension

Microsoft's IIS doesn't support it, and is not replying with ServerHello
after receiving ClientHello which contains it.

The good way might be allowing to opt-out this at runtime from
javascript-land, but unfortunately OpenSSL doesn't support it right now.

see #5119
doc: addon: fix grammar
tls: handle errors before calling C++ methods

Calling `this.pair.encrypted._internallyPendingBytes()` before
handling/resetting error will result in assertion failure:

../src/node_crypto.cc:962: void node::crypto::Connection::ClearError():
Assertion `handle_->Get(String::New("error"))->BooleanValue() == false'
failed.

see #5058
test: Accept either kind of NaN

A llvm/clang bug on Darwin ia32 makes these tests fail 100% of
the time.  Since no one really seems to mind overly much, and we
can't reasonably fix this in node anyway, just accept both types
of NaN for now.
deps: upgrade libuv to 7514149
util: fix util.inspect() line width calculation

Have the formatter filter out vt100 color codes when calculating the
line width. Stops it from unnecessarily splitting strings over multiple
lines.

Fixes #5039.
os: use %SystemRoot% or %windir% in os.tmpdir()

On Windows, respect the SystemRoot and windir environment variables,
don't default to c:\windows\temp.
doc: debugger, dns, http: fix grammar
doc: Add 'don't ignore errors' section to domain

Also, an example program of using cluster and domain to handle errors
safely, with zero downtime, using process isolation.
stream: Handle late 'readable' event listeners

In cases where a stream may have data added to the read queue before the
user adds a 'readable' event, there is never any indication that it's
time to start reading.

True, there's already data there, which the user would get if they
checked However, as we use 'readable' event listening as the signal to
start the flow of data with a read(0) call internally, we ought to
trigger the same effect (ie, emitting a 'readable' event) even if the
'readable' listener is added after the first emission.

To avoid confusing weirdness, only the *first* 'readable' event listener
is granted this privileged status.  After we've started the flow (or,
alerted the consumer that the flow has started) we don't need to start
it again.  At that point, it's the consumer's responsibility to consume
the stream.

Closes #5141
stream: Emit readable on ended streams via read(0)

cc: @mjijackson
setTimeout: do not calculate Timeout._when property

Dramatically improves Timer performance.
tls: handle SSL_ERROR_ZERO_RETURN

see #5004
npm: Upgrade to v1.2.15