Fixed #353: Implement sorely missed $.Deferred API

Fixes #353 

Split into 2 components so far, with likely a third on the way -- and then there's room for a lot of cleanup.

- **$.Deferred:**
   - Current implementation depends on $.Callbacks as jQuery's does. For $.Callbacks to make sense, it's also necessary to get $.ajax to leverage it, so that we can avoid code duplication.
    
    - I've taken jQuery's tests and adapted them to Evidence, and made an attempt to give them a little more atomicity (for the most part).

    - Not implemented yet is `$.Deferred.when()`, which shall be forthcoming.

- **$.Callbacks:**
    
   - This is very similar to jQuery's implementation, however some minor adjustments have been made where I feel marginal performance increases could be had. (For instance, `array.length = 0` rather than `array = []`)
    
   - Does not support flags in string format. This could be a problem for some jQuery plugins which use $.Callbacks, but my feeling is that $.Callbacks is essentially an internal API which is probably not used by many outside things. This provides a little bit of simplified code, so that's cool.
   - All of the original jQuery tests, with some additional ones to clarify the ordering in the case where the "unique" flag is used.
   - All tests are green on Chromium, it remains to be seen how it will behave on other supported browsers.

I'm hoping this can be reviewed so I can get some critiques on ways to improve performance and shrink this code more.

Because the code is very heavily informed by jQuery's implementation, it's necessary to provide their copyright header I believe?