crypto: allow padding in RSA methods

Reviewed-By: Trevor Norris <trevnorris@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 asyncRemoveQueue() method so handles can disable async_flags_ when
  there are no longer any items in the queue.

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

* Remove flag states of AsyncWrap::ProviderType. It's impossible to have
  and AsyncWrap instance with more than one PROVIDER.

Signed-off-by: Trevor Norris <trev.norris@gmail.com>
async-wrap: macro-ify AsyncWrap::ProviderType's

Making all the provider types a macro expansion allows them to be
declared in one location but used in many places. This makes maintenance
easier as more providers are added.

Signed-off-by: Trevor Norris <trev.norris@gmail.com>
async-wrap: all new instances get a unique id

Every AsyncWrap instance recieves a unique id. A new C++ and JS API have
been exposed to retrieve this value:

* AsyncWrap::id()
* handle.asyncId()

Signed-off-by: Trevor Norris <trev.norris@gmail.com>
node: fn to add undefined prototype properties

Add convenience function to add undefined properties to a
FunctionTemplate's prototype. This is useful when properties will be set
in the future on the instantiated object, without V8 changing the object
map.

Signed-off-by: Trevor Norris <trev.norris@gmail.com>
dgram: SendWrap now has FunctionTemplate

In order for SendWrap to have access to the additional methods in
AsyncWrap, the request object needs to be an instance of a
FunctionTemplate.

Signed-off-by: Trevor Norris <trev.norris@gmail.com>
net: ConnectWrap now has FunctionTemplate

Created classes PipeConnectWrap and TCPConnectWrap so each one could run
AsyncWrap::AddMethods() during instantiation.

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