Update responders

Added new basic responder: `PipeResponse` that uses an `io.Pipe` to stream a response body as its being read.

Moved redirect and json responders into sub package.  This makes way for other types of response generators without crowding the main package.

Added `StreamingJSONResponse` which is like `JSONResponse` but is built on top of `PipeResponse`.  The benefit to this is you don't have to pre-buffer the JSON output.  This could be valuable for large JSON output.  The downside is that you can't capture errors before responding.