The Responder never actually dealt with the intermediary stages of
CancelingRequested and CancelingBuildingResponse, but could still observe them.
Despite that, the loom tests still don't reach any panic
This is pretty much a complete rewrite. It gives a much nicer API to
understand from the documentation. It also means that it doesn't rely on
\#[doc(hidden)] methods (except for `Interchange::const_new` so that it
can be removed once the required compiler features are stabilized)
Because everything doesn't need to be `'static` anymore, it can also be
tested efficiently with Loom, ensuring that there are no possible race
conditions.
It is a significantly breaking change