tls: introduce asynchronous `newSession`

fix #7105
zlib: introduce pending close state

zlib should not crash in `close()` if the write is still in progress.

fix #7101
crypto: make NewSessionDoneCb public

Generic friend classes do not work well with old compiler versions (and
MSVC).
repl: REPLServer inherits from readline.Interface

This exposes a setPrompt for and other readline features
repl: remove a unnecessary concatenation
readline: fix `line` event, if input emit 'end'

If an input stream would emit `end` event, like
`fs.createReadStream`, then readline need to get the last line
correctly even though that line isnt ended with `\n`.
lint: fix missing semi colon in repl
npm: upgrade to 1.4.3
build: don't enable gc-sections

In some scenarios this will strip the DOF sections for DTrace, and in a
future world where we re-export all static libraries it would defeat
that purpose.
debugger: Fix breakpoint not showing after restart

The reason this wasn't working was because after restart, when restoring
breakpoints the scripts wasn't loaded, so the breakpoint.script was
undefined. As a fix I added another check to use breakpoint.scriptReq
instead of breakpoint.script, which is the same except when the
breakpoint is a function.

fixes #7027
Merge remote-tracking branch 'upstream/v0.10'

Conflicts:
	src/node_zlib.cc
async-wrap: include additional ProviderType

NONE has been moved to 0.

CONNECTWRAP has been removed and instead the incoming connection
provider type is passed.

FSREQWRAP has been included.

{Req,Write}Wrap have been split up and now pass the callers provider
type, since the class defines what is going on not who is calling it. So
now the "provider" constructor parameter is now required on both.

CARES has been moved to QUERYWRAP.

AsyncWrap::provider_type() now returns ProviderType.
tracing: WIP pass provider filter to AsyncListener
tracing: properly check asyncQueue length

The asyncQueue length was not properly checked when running the create
callbacks. Leading to no callbacks being run.
doc: update AsyncListener usage

There were a few errors in the functionality that users could expect
from AsyncListener.
tracing: pass context to AsyncListener error() cb

The context passed to the error() callback is that of the originating
function call in the call stack. Not the context of the function that
actually threw.
WIP: checking changes to env*