These new functions are more flexible than the other
{intercept,register}*ProtocoProtocol functions, since it allows the user to
return a node.js stream to feed the data to the protocol handler.
It also allows the user to specify a response header dictionary, which makes it
possible to correctly intercept any request made from renderers.