First draft IVar-Future-Promise-Probe unification

Not ready for merge. Opening discussion. Compatibility layer is totally missing for now.
@pitr-ch No more `#execute` method? I don't have a strong preference toward one set of method names versus another, but the `#execute` method (and related API) was added recently. Is there any reason not to retain existing method names that still make sense?