Implementing a promise deferred setup, this is just the beginning.
Note this is different from a bilby.js (fantasy-land) promise as this holds the state
of a promise and holds the value of the promise. The reason for this is that it is
possible in fantasy-land promises to change the value of the promise which in turn
makes the promise value seem immutable. This obviously is a mute point because the
said value being promised could in fact be an vanilla object and a user could change it
anyway, behind the scenes.