WIP: Request data and transformer API

# DO NOT MERGE

This is a work in progress to create an immutable object which represents all of the data about a request and to provide a transformer which allows changing this data upon submission.

TODO:

 * [ ] Tests don't compile
 * [ ] `fit()` isn't hooked up
 * [ ] Proper example
 * [ ] Docs on `RequestData` and its builder.