308 status code is ‘Permanent Redirect’ (see http://greenbytes.de/tech/webdav/draft-reschke-http-status-308-07.html) and `Rack::Response::Helpers#redirect?` would accept it as a redirection when 308 status is supported by Rack.
we don't need to create a new lambda object every time we do parsing
I don't want the helpers module to know that the underlying implementation uses a hash for storing headers. Instead, I've extracted a few methods for manipulating the headers and whoever includes the module can use whatever data structure they want.
this way we can manipulate cookies without depending on the cookies being stored in a hash.
This keeps us from knowing about the particular keys in the env hash for the things this middleware cares about