buffer: Don't double-negate numeric buffer arg

Fix #4331

Using double negate forces values into 32bit space. Because of this
Math.ceil needs to be used. Since NaN comparisons are always false, use
that to our advantage to return 0 if it is.

Also added two tests to verify the changes.
Fix dropped html tag
benchmark: Add net-pipe benchmark

Just sends a buffer to a server, which echoes it back, and then measures
the Gbits/second.  Very similar to throughput.js, but using a single
process, so that it's possible to dtrace and get the jsstack frames for
profile comparison.
test: TTY only has writeBuffer(), not write()

This test is only passing because it's skipped normally.
install: fix freebsd man page location

Man pages go into $PREFIX/man on FreeBSD, not $PREFIX/share/man.
tools: fix platform detection on freebsd, sunos

This is a back-port of upstream gyp commit r1482.
build: avoid -Wno-old-style-declaration with gcc 4.2

Fixes the build on FreeBSD <= 9 with the default compiler.

Fixes #4186.
test: fix simple/test-setproctitle on freebsd
crypto: fix leak in GetPeerCertificate
crypto: fix leak in GetPeerCertificate
os: throw when os.networkInterfaces() fails
fs: fix 'object is not a function' callback errors

Use a default callback if the user omitted one. Avoids errors like the one
below:

  fs.js:777
      if (err) return callback(err);
                      ^
  TypeError: object is not a function
          at fs.appendFile (fs.js:777:21)
          at Object.oncomplete (fs.js:297:15)

This commit fixes the behavior of fs.lchmod(), fs.lchown() and fs.readFile()
when the callback is omitted. Before, they silently swallowed errors.

Fixes #4352.
fs: add long stacktrace debugging facility

Enable long stacktraces if NODE_DEBUG=fs is set in the environment. Only
applies to the default rethrow callback; it's to help you find places where
you forgot to pass in a callback.
test: fix simple/test-debug-brk-file race condition

V8 debug agent needs some time to be ready and no longer sends the first event
break response to a debug client. We wait some time to connect the agent and
check its break status by obtaining breakpoint list and seeing if it exists on
line 0.
test: remove simple/test-child-process-fork2

The test assumes the parent and the child are scheduled fairly. Probably true
most of the time but not always, making it fail spuriously.

Bad test, remove it.
buffer: remove unused #includes
process: add getgroups(), setgroups(), initgroups()

DRY the getuid(), getgid(), etc. functions while we're at it.
tls, https: add tls handshake timeout

Don't allow connections to stall indefinitely if the SSL/TLS handshake does
not complete.

Adds a new tls.Server and https.Server configuration option, handshakeTimeout.

Fixes #4355.
doc: remove broken require.extensions example

Fixes #4384.
fs: Raise error when null bytes detected in paths

Reworking of @bnoordhuis's more aggressive approach.