A lightweight futures package inspired by Scala. The goals are to provide
a simple interface for creating futures and, most importantly, composing multiple
asynchronous actions together. Thus, all futures return Async<T, E>
which is
an asynchronous equivalent to Result<T, E>
, the only difference being that
an extra variant Continue(Future<T, E>)
allows for composition.