Promise callback and trait additions

- `Promise` callback signature changed to have resolve/reject functions as opposed to the resolver object.
- `trait/promise` adds `.finally()` and `.catch()`
Do you have some sort of indentation standards? If so, are they insane?