http client: Ensure socket cleanup on response end

If an http response has an 'end' handler that throws, then the socket
will never be released back into the pool.

Granted, we do NOT guarantee that throwing will never have adverse
effects on Node internal state.  Such a guarantee cannot be reasonably
made in a shared-global mutable-state side-effecty language like
JavaScript.  However, in this case, it's a rather trivial patch to
increase our resilience a little bit, so it seems like a win.

There is no semantic change in this case, except that some event
listeners are removed, and the `'free'` event is emitted on nextTick, so
that you can schedule another request which will re-use the same socket.
From the user's point of view, there should be no detectable difference.

Closes #5107
src: remove unused variables
build: allow building with dtrace on osx
dtrace: pass more arguments to probes

OSX and other DTrace implementations don't support dereferencing
structs in probes. To accomodate that pass members from the struct as
arguments so that DTrace is useful on those systems.
dtrace: actually use the _handle.fd value

When using the DTrace/systemtap subsystems it would be helpful to
actually have an fd associated with the requests and responses.
dtrace: check if _handle property is set

Check that _handle is an object before trying to read its `fd`
property, avoids bogus values.
etw: update prototypes to match dtrace provider

The DTrace probes were updated to accomodate platforms that can't
handle structs, update the prototypes for ETW but it's not necessary
to do anything with the new arguments as it's redundant information.
assert: Simplify AssertError creation
child_process: acknowledge sent handles

Fix race-condition when multiple handles are sent and SCM_RIGHTS
messages are gets merged by OS by avoiding sending multiple handles at
once!

fix #4885
test: fork-getconnections stricter, less chatty
npm: Upgrade to 1.2.17
http: Remove legacy ECONNRESET workaround code

Fix #5179
2013.04.03, Version 0.10.3 (Stable)

* npm: Upgrade to 1.2.17

* child_process: acknowledge sent handles (Fedor Indutny)

* etw: update prototypes to match dtrace provider (Timothy J Fontaine)

* dtrace: pass more arguments to probes (Dave Pacheco)

* build: allow building with dtrace on osx (Dave Pacheco)

* http: Remove legacy ECONNRESET workaround code (isaacs)

* http: Ensure socket cleanup on client response end (isaacs)

* tls: Destroy socket when encrypted side closes (isaacs)

* repl: isSyntaxError() catches "strict mode" errors (Nathan Rajlich)

* crypto: Pass options to ctor calls (isaacs)

* src: tie process.versions.uv to uv_version_string() (Ben Noordhuis)
v8: cherry-pick 75311294 from upstream

Quote from commit message:

    Create a new HandleScope for each JSON-parsed object to avoid
    excessive growth.
Merge branch 'v0.10.3-release' into v0.10
Now working on 0.10.4
blog: Post about 0.10.3
crypto: use better memory BIO implementation
doc: Correct caveats for http Readables
stream: remove vestiges of previous _transform API