cluster: remove duplicate this.errno assignment
cluster: fix shared handle bind error propagation

A failed bind() was already being correctly reported in round-robin
mode. This commit fixes bind() error reporting in shared handle mode.

Fixes #5774.
test: cluster: add 'bind to privileged port' tests
src: remove unused tick_spinner
test: loosen timeout in https-no-reader

fix #5925
child_process: add 'shell' option to .exec()

No test, we can't rely on an alternate shell being available.

Fixes #5935.
doc: vm: fix incorrect API documentation

On timeout, an Error object is thrown, not null.
v8: upgrade to v8 3.20.9
src: don't use NewExternal() with unaligned strings

V8 3.20.9 enforces that external pointers are aligned on a two-byte
boundary.

We cannot portably guarantee that for the source code strings that
tools/js2c.py generates so simply stop using String::NewExternal()
altogether (and by extension String::ExternalAsciiStringResource).

Fixes the following run-time assert:

  FATAL ERROR: v8::String::NewExternal() Pointer is not aligned
dgram: report send errors to cb, don't pass bytes

Passing the number of sent bytes to the callback is superfluous;
datagram sockets operate in atomic mode: either the sendmsg() system
call succeeds or it fails but it never does partial writes.

Instead, report send errors to the callback. UDP error reporting is
fairly haphazard on most platforms. You should not expect reliable
delivery of anything besides EMSGSIZE and (possibly) ENETDOWN and
ENETUNREACH.

Fixes #2608.