Replace uses of defer with Promise constructor

I converted all cases of the `defer` pattern to the `new Promise` pattern, as recommended [here](http://emberjs.com/api/classes/Ember.RSVP.html#method_defer) and [here](https://github.com/petkaantonov/bluebird/wiki/Promise-anti-patterns#the-deferred-anti-pattern).