doc: fs.lchmod() is only available on OS X
deps: upgrade libuv to 3b8c0da
build: rename openssl configure switches

For consistency's sake, rename:

  --openssl-use-sys
  --openssl-includes
  --openssl-libpath

To:

  --shared-openssl
  --shared-openssl-includes
  --shared-openssl-libpath

And add --shared-openssl-libname while we're at it.

The old switches still work but `./configure --help` won't print them.

Fixes #3591.
build: handle output of localized gcc or clang

Before this commit, we used to scan the output of `$CC -v` for strings like
"gcc version x.y.z".

It was pointed out that this approach fails with localized versions of gcc
because those print (for example) "gcc versión x.y.z".

Use the output of `$CC --version` instead and only look at the first line.
doc: document setTimeout / setInterval behavior
deps: upgrade libuv to cc1b3de
build: detect cc version with -dumpversion

The heuristic introduced in f78ce08 ("build: handle output of localized gcc or
clang") does not handle "branded" versions of gcc, i.e. a gcc whose output has
been customized by the distro vendor.

Fixes #3601.
build: disable -fstrict-aliasing for any gcc < 4.6.0

It has been conclusively demonstrated that the -fstrict-aliasing bugs in gcc's
optimizer are not limited to the 4.5.x releases only.

Fixes #3601 among others.
build: rename strict_aliasing to node_no_strict_aliasing

Make the variable naming consistent with the other strict aliasing var,
v8_no_strict_aliasing.
deps: upgrade libuv to 5031a5b
tools: update gyp to r1426
deps: upgrade libuv to be09be7
repl: fix crashes when buffering command

Wrong order of operands was causing problems while trying to use command
buffering:

    > {
    ...   a: 3,
    ...

    repl.js:284
            if (cmd.trim().match(/^npm /) && !self.bufferedCommand) {
                    ^
    TypeError: Cannot call method 'trim' of undefined
        at finish (repl.js:284:17)
        at REPLServer.self.eval (repl.js:118:5)
        at rli.on.e (repl.js:260:20)
        at REPLServer.self.eval (repl.js:118:5)
        at Interface.<anonymous> (repl.js:250:12)
        at Interface.EventEmitter.emit (events.js:88:17)
        at Interface._onLine (readline.js:183:10)
        at Interface._line (readline.js:502:8)
        at Interface._ttyWrite (readline.js:720:14)
        at ReadStream.<anonymous> (readline.js:105:12)

Test included.

Closes #3515.
Closes #3517.
Closes #3621.
repl: fix passing an empty line inserting "undefined" into the buffer

There was a possiblity of insering the string "undefined" into the repl's
command buffer, which would cause interesting results while evaluating.
timers: fix handling of large timeouts

Don't use the double-negate trick to coalesce the timeout argument into a
number, it produces the wrong result for very large timeouts.

Example:

    setTimeout(cb, 1e10); // doesn't work, ~~1e10 == 1410065408
readline: fix for unicode prompts

prompt length is char length, not byte length
module: add filename to require() json errors

Otherwise it can be quite difficult to figure out which file is busted.

Closes #3580.
Remove octal escape sequences and avoid reserved keyword

Both are errors in strict mode.
Avoid redeclaring variable

Capitalize the constructor to avoid redeclaration.
Fixes strict mode error.
Do not assign to properties that only have getters

It is an error in strict mode, and silent failure otherwise.