Extract filter classes from NetworkAccessManager

NetworkAccessManager was getting pretty complex, and adding something that
modifies or intercepts requests is becoming a common change.

This change introduces a chain of filters which can modify a request or return
a response of their own.

To start with, this extracts the concerns of fixing missing content types,
setting custom headers, and intercepting blacklisted requests.
This refactor makes the bug resolved here apparent: https://github.com/thoughtbot/capybara-webkit/commit/cae5119eef49f33876c7156f5669dc101b7fcf3c#diff-22cd536a7c596a7335d59d8b761eb18eL53. I never noticed that we were copying the request onto the stack and later referencing it. This is probably OK so long as we don't reference it in the future -- but a look at `QNetworkReplyImplPrivate` shows that `QNetworkReply::url()` is a reference to the URL of this `QNetworkRequest`.