Support done to have exceptions surface

Here's another go. Copying the text from the earlier pull request. Also changed location of jQuery to get tests to pass.

Since we're "leaving the promise world", we should terminate the continuation chain with a done function. Otherwise exceptions from the AMD module that requires the promise module won't be visible.

Example:

```javascript
define('promiseModule', function() {
   return Q({});
})

define(function(require) {
  var result = require('promiseModule');
  result.DoSomethingWeird(); // This exception will be hidden since it's "inside" a promise chain
})
```