Adds improved Rack::Deflater tests.
Adds deflater options to control compression on per-request level.

* Adds :if option which should be given a lambda accepting env, status, headers, and body options.
* When :if evaluates to false a response body won't be compressed.
* Adds :include option which should be given an array of compressible content types.
* When :include don't include request's content type then response body won't be compressed.
Close body if content is fresh enough
Reformat Rack::Lint docs.

Limit lines to 80 chars.
Ensure Rack::Utils.best_q_match to respect requested content type
Flip the lobster better
Add support for RFC2324 status code
Add helper method for 418
request.scheme supports multiple x-http-forwarded-proto values
Fix `clean_path_info` for paths with only a slash
Proxy body if it is fresh enough

In order to prevent response body resulting in race conditions.
add support for application/json content type requests
Refactor methodoverride to make it easier to inherit and extend
Merge pull request #687 from dwilkie/master

Refactor methodoverride to make it easier to inherit and extend
Move ["POST"] to a constant
max-age settings forces Set-Cookie parameter

With patch https://github.com/rack/rack/commit/74e0acd36353cf619bf56fce17bcb9ef1ab30547, there is ability on rack to set max-age parameter. Which is fine. Unfortunately this parameter is sent to browser only when the session cookie is created. Which is afaik wrong. You usually want to refresh the cookie with each page request. And setting 'expires' parameter behaves in this way as well. So this patch doest:

1) When max-age parameter is present, the Set-Cookie HTTP header is sent with each request
2) When both max-age and expires parameter are set, max-age has precedence
3) Added max-age conversion to string where aplicable, because user might not want to use string for "time interval"
Fixed build_nested_query to handle empty arrays and hashes
Readme: Use an SVG badge.

Badges will look more consistent and less blurry on Retina screens (and the like).
Merge pull request #700 from espadrine/patch-1

Readme: Use an SVG badge.
Fix spec_request on ruby-trunk (2.2.0dev)

Manually percent-encode square brackets in query string. This fixes
current travis build issues.

2.2.0dev has recently changed URI parsing from RFC2396 to RFC3986.
Square brackets in RFC3986 are required to be percent-encoded when
present in the query string of a URI. URI.encode on 2.2.0dev isn't
currently updated to support this encoding (see:
    https://bugs.ruby-lang.org/issues/9990)