buffer: Fix incorrect Buffer.compare behavior

Fixes #7551

Signed-off-by: Trevor Norris <trev.norris@gmail.com>
url: treat \ the same as /

See https://code.google.com/p/chromium/issues/detail?id=25916

Parse URLs with backslashes the same as web browsers, by replacing all
backslashes with forward slashes, except those that occur after the
first # character.

Manual rebase of 9520ade

Signed-off-by: Trevor Norris <trev.norris@gmail.com>
doc: fix a typo

Signed-off-by: Trevor Norris <trev.norris@gmail.com>
src: add --throw-deprecation entry to --help
doc: add spec for util.deprecate()

Signed-off-by: Trevor Norris <trev.norris@gmail.com>
crypto, zlib: replace _binding with _handle

Also include whitespace fixes to appease jslint.

Signed-off-by: Trevor Norris <trev.norris@gmail.com>
freebsd,linux,sunos: make stack non-executable

Link with -z,noexecstack to make stack memory non-executable.  Makes
shellcode injection through buffer overflows more difficult.

Fixes #7542.