Validate header names according to RFC 2616

Header name validation rules are too strict. RFC 2616 allows any ASCII character save from 0-32, 127, "(", ")", "<", ">", "@", ",", ";", ":", "\", <">, "/", "[", "]", "?", "=" and "{", "}".
allow overriding the rack multipart parser tempfile class

This allows for more flexibility in how to buffer (or stream) multipart
file uploads, rather than always using Tempfile and buffering to local
TMPDIR.
add rack.multipart options to lint and SPEC
Merge branch 'codekitchen-streaming-multipart'

Closes #639
Fix #639 wrong merge
Extract several methods from Rack::File#serving

Extracted methods:

  - mime_type
  - filesize
  - response_body

Closes #570

Signed-off-by: Santiago Pastorino <santiago@wyeworks.com>
Merge pull request #399 from EqualMedia/rfc2616-compat

Validate header names according to RFC 2616
Bump to 1.6.0.beta2
Rack::Lint and SPEC align with RFC7230 headers
Header specification change increments SPEC
Document the multipart_part_limit configuration in the README
Merge pull request #763 from byroot/multipart-limit-doc

Document the multipart_part_limit configuration in the README
Use a monotonic time for Rack::Runtime, if available

Time.now is prone to inaccuracies if the system time changes during the
request. This could be due to DST, NTP, etc. Using a monotonic clock
(available in Ruby 2.1+ on certain platforms) avoids this problem.