trait/promise: renaming promise() to thenable()

It is only useful for returning an object with a then() for chaining
with other Promise/A+ implementations.

This is to free promise() to chain with jQuery's Deferred implementation