First draft IVar-Future-Promise-Probe unification

Not ready for merge. Opening discussion. Compatibility layer is totally missing for now.
Makes sense. Since we are still pre-1.0 I'm not too concerned about maintaining method names. I definitely like the direction you are going.