vm: fix Persistent<Context> leak
uv: update to v0.10.15
uv: upgrade to v0.11.9
process_wrap: update after libuv api change

The `exit_code` argument for the `ProcessWrap::OnExit` callback changed
from int to int64_t.
domain: move error handling directly into instance

Instead of doing all the domain handling in core, allow the domain to
set an error handler that'll take care of it all. This way the domain
error handling can be abstracted enough for any user to use it.
uv: upgrade to v0.11.10
process_wrap: don't coerce process exit code to int32_t

On windows process exit codes can be greater than INT32_MAX. This used
to be not much of a problem - greater values would just come out
negative. However since ca9eb71 a negative result value indicates that
uv_spawn() has failed, so this is no longer acceptable.
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
stream: Pass 'buffer' encoding to decoded writables

Since the encoding is no longer relevant once it is decoded to a Buffer,
it is confusing and incorrect to pass the encoding as 'utf8' or whatever
in those cases.

Closes #6119