check deflater content type
deflate type check against Rack::Mime::MIME_TYPES

- Rack::Mime::MIME_TYPES
  - now has 604 "file type" => "mime" maps
  - these 604 maps include 535 MIME types
  - all MIME types should deflate or not list in content_type_deflate_expectation
- fix typo
  content_type_deflate_expection -> content_type_deflate_expectation
Remove OptionHash with options hash and SessionHash#id

There is no point in OptionHash to redefine exactly one method of Hash
to return session id. Session id belongs to SessionHash and by moving it
there we remove unnecessary class. This leads to better perfomance and
cleaner code.
Use ENV_SESSION contants in #commit_session
Make options accessible through SessionHash

It removes need to write long
@env[Rack::Session::Abstract::Id::ENV_SESSION_OPTIONS_KEY] by
abstracting it to the proper level.
Remove SessionHash inheritance from Hash

Previous api provided by SessionHash was inconsistent. All methods
provided by Hash which were not rewritten in SessionHash were behaving
incorrectly when session was not loaded yet. For example, #replace, #each,
 #keep_if and many more. So by dropping Hash inheritance we provide
clean api with all methods working without regard to whether session was
loaded or not.
SessionHash should be enumerable
Fix messed up identation
update the dead link
remove the dead link

use internet archive for a dead link

added working link
Update status codes list

Fix formatting and update comment about generation of new status codes
Set __LINE__ correctly for rackup files.

Before this change the line numbers were off by one, which broke
debugging tools like Pry in addition to causing a smidgen of user
confusion.

Reported-At: https://github.com/pry/pry/issues/571
Fix request loop on non-stale nonce with time_limit parameter.
Added missing dependence on 'timeout' in test/spec_utils.
Use backport of URI module even on ruby 1.9.2-p320.
Merge pull request #407 from dayflower/spec_utils

Use backport of URI module even on ruby 1.9.2-p320
Don't set blank Cache-Control header in Rack::ETag

A Cache-Control header with an empty string is meaningless (confusing,
even, to those inspecting response headers) and slightly wasteful.

Signed-off-by: Stephen Celis <stephen@stephencelis.com>
load session data for merge!

ID#prepare_session calls merge! on the newly-created SessionHash, but
this method is not overridden to parse existing data. As such, any
previous session data passed in from an earlier middleware is discarded.

For me, this was breaking Rack::Test while testing a Sinatra app.
Update years in license
Allow Rack::File and Rack::Static to serve custom HTTP Headers
Adjust Documentation