Adding OutputFormatter base class

mm... 
On the input side we want the user to still able to access the request stream and read from it if they chose to do so. 
On the response side this response object represents the final response (we own the object that is being written). 
Moreover a delegating stream would mean that either the delegating stream copies itself to the original stream at some point or somebody else does it, which is unnecessary in this case.