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

Respective registries don't actually implement the channel behavior yet.
I think we may want to handle a timeout error differently. Perhaps return 202, Accepted?