Promises

First class promises as desired in #46
Provides `nbd/Promise`, which `nbd/trait/promise` now uses.

`nbd/trait/promise` now is no longer instanciable, becoming a raw object.