Introduce the Future API.

There are 3 functions to create a Future:
- create
Create a new future with the given callback.
The callback will be execued in the execution context of the engine.
- successful
Create a future with the given value.
- failed
Create a future with the given error message.

This patch adds onComplete, onSuccess and onFailure methods to Future. These
three method take one callback function, but the argument type of the callback
function is different. These three methods return itself to help method
chaining.

See https://github.com/SollmoStudio/beyond/wiki/Beyond-Future-API for
more details.