[fixes#3] cleanup + performance

* only allocate n+2 promises, rather then 4n+2
* only rebind the iterated if needed
* only rebind the iterator once.
* upgrade RSVP
Out of curiosity: We're not using JSHint for this module, but if we were, it'd complain about clash with global ES6 `Promise`, as of recently. Is there a convention for preferred RSVP usage that doesn't clash?