`Future.task` + improved `Future.wrap`

`Future.task` lets you create temporary futures just like you would
create a closure.

`Future.wrap` now has a lot more features, like being able to directly
wrap a required module.