crypto: support custom pbkdf2 digest methods

Make the HMAC digest method configurable.  Update crypto.pbkdf2() and
crypto.pbkdf2Sync() to take an extra, optional digest argument.

Before this commit, SHA-1 (admittedly the most common method) was used
exclusively.

Fixes #6553.
test: fix array sorting bug

`a === a.sort()` is always true because Array#sort() does an in-place
sort.  Make a copy of the array first.
crypto: remove duplicate ERR_load_crypto_strings()

ERR_load_crypto_strings() registers the error strings for
all libcrypto functions, SSL_load_error_strings() does the
same, but also registers the libssl error strings.
doc: skip type parsing inside code blocks

Since types are denoted with curly braces it can cause erroneous
replaces in code blocks.

Signed-off-by: Trevor Norris <trev.norris@gmail.com>
node: clear nextTickQueue when using domains

When the domain specific code was reintroduced in 828f145 the
conditional to check and clear the nextTickQueue if many items had run
was not introduced. This allows for the application to run out of memory
if domains are being used in an infinite recursive loop.
tls: process accumulated input

When creating TLSSocket on top of the regular socket that already
contains some received data, `_tls_wrap.js` should try to write all that
data to the internal `SSL*` instance.

fix #6940
v8: upgrade to 3.22.24.17
async_wrap: add provider types

These will be used to give the user greater control over what events
they wish to listen to.
async_wrap: initialize at end of constructor call

This does fail in several places where AsyncWrap has not run Init().
Will be fixed in the next commit, but keeping it separate because it
currently isn't the ideal solution.
async_wrap: call Init() after constructor

ReqWrap is inherited and also called directly, which means there are
several places where AsyncWrap::Init() has to be called after object
construction. I'm not fond of this, and would like to have a more
explicit way always calling AsyncWrap::Init() from the constructor.
async_wrap: pass provider to constructor

A few things have been globbed together, like ReqWrap, which will most
likely need to be broken apart later.
env: add watched_providers for AsyncListener

Now the second field in asyncFlags will tell if the provider is
currently being watched, or listened for.
node: make AsyncListenerInst field more explicit

"flags" could mean one of many things, and multiple flag types could be
checked. So make the field more explicit on what type of flags are being
stored.
node: pass calling context to create/error

Now that the instance has finished instantiating before create is
called, it is possible to pass the calling context as the first
argument.

The current calling context is stored within scope to access the
asyncQueue attached. This has the added benefit of allowing the context
to be passed to the error callback.