RCv3 requests

The RCv3 steps added in #728 need to be turned in to actual HTTP requests. Currently, there is no support at all for doing anything with `convergence.Request` objects, so this PR adds that basic functionality.

It's primary goal is to do this for RCv3 support. It does not necessarily have to be the final API.

This probably should wait until the following PRs are merged:

- New dependent effect features:
    - [x] #730 
    - [x] #732 
    - [x] #733
- [x] `rcv3-steps`: #728

Once that's in master, I'll merge master back into this, and hopefully the diff will look a little less gnarly. While developing I will be merging these dependent PRs back in periodically.
Yeah. @radix and I came up with this separation with the unfortunate grudging admission that that would make the top function very easy to test, and this function very annoying to test. But it shall be tested nonetheless; and unfortunately it's going to involve some mocking :)