src: remove pointless node_os.h header file

src/node_os.cc doesn't export anything that's used elsewhere. Remove it.
buffer: add NativeBuffer API

Due to a lot of the util.is* checks there was much unnecessary overhead
for the most common use case of Buffer. Which is creating a new Buffer
instance for data from incoming I/O. NativeBuffer is a simple way to
bypass all the unneeded checks and simply hand back a Buffer instance
while setting the length.
buffer: fix assert fail from JS API

Length arguments passed to SlowBuffer were coerced to Int32, not Uint32,
so passing a negative number would throw the following:

node: ../src/smalloc.cc:244: void node::smalloc::Alloc(): Assertion `length <= kMaxLength' failed.
Aborted (core dumped)

That has been fixed by coercing to Uint32 and comparing the value
against kMaxLength.
src: fix up unused/unordered imports
cares_wrap: drop UV_HANDLE_FIELDS from ares_task_t

UV_HANDLE_FIELDS is a libuv implementation detail.  The ares_task_t
struct only uses the uv_loop_t* field so be explicit about that.
src: remove --max-stack-size option

Ad-hoc duplicate of V8's --stack-size option.  Superfluous in other
words.  Remove it.
src: call uv_loop_delete() on exit in debug mode

Should make tracing with valgrind a little easier on the eye and
possibly help expose libuv handle lifecycle issues.
src: remove two pointless globals from node.cc

De-globalize use_npn and use_sni, they're only used in GetFeatures().
lib: Add missing copyright notices
doc: Small update of readme for Windows users
fs: Expose birthtime on stat objects

Just do the best we can with whatever libuv gives us.

Also, document the semantics of `ctime` and the compatibility with
Windows.
domains: deprecate domain.dispose().

Follows @isaacs's recommendations in joyent/node#5018. Includes some
updates to documentation but not examples.

Conflicts:
	lib/domain.js
v8: upgrade to 3.20.17
child_process: Callback with Buffers from exec

Only return strings when encoding is not null.
child_process: Avoid extra copy for string stdio

There's no need to create a new Buffer instance if we're just going to
immediately call toString() at the end anyway.  Better to create a
string up front, and setEncoding() on the streams, and do a string
concatenation instead.
stream: change default hwm for objectMode to 16
doc: mark repl as stable

Closes #6090