Use equal? to compare form_input to rack.input

Using equal? provides consistent results of equality between 1.8, 1.9,
and 2.0 when comparing Tempfile objects.

In 1.8, == will change the position of the Tempfile.
In 1.9+, == compares Tempfiles correctly.

In 1.8, eql? compares Tempfiles correctly
In 1.9+, t.eql?(t) always returns false
Allow specifying a default handler
Use `sub` as we only need to substitute once.

(Hence the use of `\z`)
conditional get is causing exceptions during regular usage, avoid the exception raising for all trivial cases (empty and shorter than minimal length strings)
Merge pull request #595 from benpickles/use-sub-not-gsub

Use `sub` as we only need to substitute once.
Merge pull request #588 from statianzo/tempfile-form-input

Use equal? to compare form_input to rack.input
Change equality check to stop warnings
Merge pull request #597 from vipulnsward/change_equality_check

Change equality check to stop warnings
Merge pull request #596 from SamSaffron/master

Conditional get is causing exceptions during regular usage
avoid copying entire payload just to calc md5
Merge pull request #600 from SamSaffron/master

avoid copying entire payload twice just to hash it
Remove unused require rbconfig

Rbconfig is no longer used in the :deps task, so no longer required
Merge pull request #601 from bajamircea/master

Remove unused require rbconfig
Play nicely with custom coders that allow '--' to appear in the encoded cookie
oops. this should make 1.8.7 happier
Add Rack::Builder#warmup method for app preloading.

This new `warmup` method takes a block which is invoked after the app
is built. The block can be used to make mock requests that ensure
all application dependencies are loaded before the app starts
serving traffic.

With complex frameworks like Rails, many dependencies are auto-loaded
and data like mime-type and i18n is not loaded into memory by default. This
often means the first few requests handled by an application are quite
slow.

With this patch, config.ru can simply make requests via warmup to
exercise the app before it is used:

  $ tail -4 config.ru
  warmup do |app|
    client = Rack::MockRequest.new(app)
    client.get('/')
  end
add parentheses to method definitions with arguments

to keep it uniform with the rest of the repo
Merge pull request #606 from aweiksnar/patch-1

add parentheses to method definitions with arguments
Add OPTIONS support to File and MockRequest.

Also update the specs for same.

RFC 2616, section 9.2 specifies OPTIONS requests.  Not much effort to
support it for this case; there's already an ALLOWED_VERBS cosntant in
Rack::File, and the spec describes the body of the request as optional.
Minor fix to Rack::File OPTIONS for Lint.