Change Future API to expose result(), cancel() and cancelled()

Implement the interface of concurrent.futures()