refactor Response.parse and add tests

The new test server may seem like overkill, but it should work well for testing the upcoming `:persistent` option.
And it's nice to be able to inspect the request _as the server received it_, and pass info back about the server's actions.

I'm opening 4 more PRs, all of which build upon one another. We'll see how that works :)