http: Don't try to destroy nonexistent sockets

Fixes #3740

In the case of pipelined requests, you can have a situation where
the socket gets destroyed via one req/res object, but then trying
to destroy *another* req/res on the same socket will cause it to
call undefined.destroy(), since it was already removed from that
message.

Add a guard to OutgoingMessage.destroy and IncomingMessage.destroy
to prevent this error.
install: Support $(PREFIX) install target directory prefix

This change introduces support for the common PREFIX variable in the
Makefile and install.py, instead of having /usr/local hardcoded. This
makes it much easier to install node to custom locations e.g. in a
user's home directory.

The PREFIX variable defaults to /usr/local.
build: Makefile should respect configure --prefix

Fixes a regression that got introduced in commit ddf4d1a.
test: cluster: remove bind-twice-v1 test

It tests the same thing as bind-twice-v2, only not as in-depth.
test: cluster: rename bind-twice-v2 to bind-twice
test: cluster: unhide child errors in bind-twice

Errors in leaf child processes weren't picked up by the test runner
because they didn't get bubbled up to the main process. Don't forcibly
kill the child processes; tell them to quit gracefully, then inspect
their exit codes.
debugger: `restart` with custom debug port

Fixed a bug in debugger repl where `restart` command did not work
when a custom debug port was specified via command-line option
--port={number}.

File test/simple/helper-debugger-repl.js was extracted
from test/simple/test-debugger-repl.js
debugger: print port number when connecting to debuggee

To improve troubleshooting of debugger problems in the future,
the debugger repl now prints the port it is connecting to.