dns: always set variable family in lookup()

Regression occurred that prevented the variable "family" from being set
properly when the lookup() function's "options" parameter was passed a
number instead of an object.

Also included a sanity check by setting the default value of "family" to
a value that will not pass verification.

Fixes: e643fe4 "dns: fix GetAddrInfo assert"
Reviewed-by: Alexis Campailla <alexis@janeasystems.com>
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
src: use explicit setImmediate not global

Reviewed-by: Trevor Norris <trev.norris@gmail.com>
async-wrap: add functionality, rm tracing module

* Generalize the ASYNC_PROVIDER being passed by the category to which
  it belongs. Instead of having specialized providers for classes like
  ConnectWrap.

* When instantiating a class in cases like receiving an incoming TCP
  connection the activeContext of the parent is no longer available
  because of the asynchronous call. In these cases manually set the
  parent class that contains the context that should propagate to the
  instantiated class.
  * Currently this only happens in tcp_wrap, pipe_wrap and stream_wrap.
    Though careful attention will need to be made in the future that
    other initializations of the same form are also wrapped.

* Force before/after callbacks to run when a class is instantiated, not
  only when a callback is about to be called from MakeCallback.

* Add _removeAsyncQueue() method to handles so when there are no longer
  any items in the queue async_flags_ can be reset.

* Remove all public facing API for the tracing module and replace with a
  process.binding('async_listener') to initialize hooks into the
  AsyncWrap class.

Signed-off-by: Trevor Norris <trev.norris@gmail.com>