Wip sip23 √

I understand that there are issues with mutable state and callbacks.
Do you think that relying exclusively on `foreach` would eliminate them?
Seems to me that the clients could just refactor their code to use `foreach` and `andThen` if we eliminate `onFailure` and `onSuccess`.

Also, is the idea to deprecate `onComplete` too, eventually? I think that the async/await depends on `onComplete` - maybe @phaller can comment?

I think this is worth discussing this in more depth before deprecating `onFailure` and `onSuccess`, perhaps even having a SIP.