This was previously implemented in #470 but later unintentionally
reverted in #803. This isn't verbatim the design implemented earlier; we
now capture the full RequestF save the request body.
Fixes#978.
This commit begins the reorganization of the servant-client project
so as to allow multiple backends, and also begins some much-needed
refactoring of the servant-client code.