Add promises support to `$.ajax()` if "deferred" module is present

If "callbacks" and "deferred" Zepto modules are loaded, every XHR
instance returned from `$.ajax()` will support a promises interface:

  xhr.done(function(data, status, xhr){ ... })
  xhr.fail(function(xhr, errorType, error){ ... })
  xhr.always(function(){ ... })

Closes #604
Include `test/ajax_deferred.html` in main test suite
Support Ajax promise interface for JSONP as well

References #604
Merge branch 'ajax-deferred'