Extract test resource from rack adapter spec
Test mongral adapter in integration

This actually caught an issue with the way response headers are handled.
Sometimes response headers can be array-valued, which was broken.

I also split the mongrel and reel adapters #run method into two parts,
in order to support graceful shutdown.

This fixes an annoying wart where ports are left open across tests, but
it also adds unnecessary complexity to the adapters.
Add a shutdown method for adapters

This is useful for integration testing, which would start and stop a
server. In normal operation, the signal handler would perform the
shutdown.
Use net/http instead of httpclient
Don't stub adapter internals to check for #to_s/#each interface
Remove unused lets
Wait until the mongrel server is responsive
Extract adapter integration tests into a shared example.
Run/shutdown server around all examples
Use adapter lint for rack adapter
Fix IO response bodies for Rack/WEBrick/Mongrel

There were three issues that needed to be resolved.

1. Precedence issue in `IOEncoder#each`
2. IOEncoder needs to define `empty?` if it has a content length
   chunked transfer encoding is not set on IO response bodies the same
   way that it is for enum/proc/fiber, so `ensure_content_length` ends
   up calling `set_content_length`, which calls `empty?`
3. Adapters shouldn't use ChunkedBody unless Transfer-Encoding says so

The fixes I put in are just workarouns. I think that some real thought
should be put into better long term fixes.
Get Reel to pass adapter lint
Add debug logging to Rack and WEBrick adapters
Properly start/finish Net::HTTP
Use any available port for adapters
Use Celluloid::TaskThread for JRuby 1.7.3

This is a workaround for http://jira.codehaus.org/browse/JRUBY-7112
See: https://github.com/celluloid/celluloid/issues/169
Try sleep instead of Thread.yield to fix rbx flakiness
Remove verbose debugging output
Avoid NoMethodError in Adapter shutdown method
Don't need to run WEBrick server in a thread