anchor.diff:  
   This API should be implemented by tracked objects if they wish to be cleaned up by modules like Zones or Domains when they exit. This API relies on the object also registering using the Observable APIs.
   
  +[[objectdispose]]
   ==== Object.dispose()
   
   This method is called by Zones or similar libraries when they are exiting and waish to cleanup a tracked object.
  
positive.code: * `fArgs`: Map of argument name to values. This will be passed to listeners that are interested in function arguments
  * `fCallback`: The callback function to be wrapped
  
  ==== Deferred.wrapMethod(fMethod, argMap, callbackPos)
  
  * `fMethod`: The method to be wrapped
  * `argMap`: Map of argument name to argument positions. This is used to construct the argument map for listeners that are interested in function arguments. If an argument is optional, it should be prefixed with `?`.
  * `callbackPos`: Optional position of the callback function. If not provided, it assumes the last argument is the callback function.
  
  ==== Deferred.wrapRequest(fMethod, argList, callbackPos)
  
  * `fMethod`: The request method to be wrapped
  
negative.code: * `fName`: A name of the function that scheduled the callback.
  * `cbId`: Unique ID of this callback
  
  [[asynctrackerdeferredreleasedfname-cbid]]
  ==== AsyncTracker.deferredReleased(fName, cbId)
  
  Called when a function is complete and will no longer be called in the future. 
  