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.
It should be fine, since the `BlacklistedRequestHandler` will have a parent of `WebPageManager`, so they'll all be deleted together.