NetworkAccessManager was getting pretty complex, and adding something
that modifies or intercepts requests is becoming a common change.
This change introduces a chain of handlers 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.