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
doc: Adjust util stability index to 'API Frozen'

Closes #6087
vm: rip out ObjectWrap from ContextifyContext

This was a remnant of the original Contextify code, wherein
ContextifyContext was a user-exposed object. In vm, it is not, so all
of the ObjectWrap and function-template stuff for the ContextifyContext
constructor is now unnecessary.
vm: use MakeWeak to fix leaking contexts

This is always something you should do when using `SetHiddenValue`,
apparently. Fixes #6115. Thanks @tjfontaine for the tips.
vm: add isContext; prevent double-contextifying

Previously, calling `vm.createContext(o)` repeatedly on the same `o`
would cause new C++ `ContextifyContext`s to be created and stored on
`o`, while the previous resident went off into leaked-memory limbo.
Now, repeatedly trying to contextify a sandbox will do nothing after
the first time.

To detect this, an independently-useful `vm.isContext(sandbox)` export
was added.
crypto: make randomBytes/pbkdf2 cbs domain aware

Make the crypto.randomBytes() and crypto.pbkdf2() callback functions
run inside the current domain (if any.)

Fixes #3965.