Part #1 of synchronous requests: Add channels and a mechanism for waiting

Respective registries don't actually implement the channel behavior yet.
Has to be deferred, or it won't work. :)