Promise callback and trait additions

- `trait/promise` adds `.finally()` and `.catch()`