HTTP refactoring part 1: move shareable parts out of httpserver.py.

tornado.httpserver.HTTPRequest -> tornado.httputil.HTTPServerRequest
tornado.httpsrever.HTTPConnection -> tornado.http1connection.HTTP1Connection
Move some logic from HTTPRequest to HTTP1Connection.

This removes some imports from httputil that are not allowed on app engine.
Fix close_callback handling when the Future read interface is used.
Fix doc references to HTTPRequest.
Refactor HTTP1Connection to use coroutines.
Move HTTPServerRequest-specific logic from http1connection to httpserver.
Use HTTP1Connection in SimpleAsyncHTTPClient.

This incidentally adds support for chunked request bodies on the server side.
Some cleanup and renamings.

Replaced some server-specific names and cut down on overuse of "process"
as a generic verb.
Move gzip decompression from simple_httpclient to http1connection.
Add support for gzipped request bodies to HTTPServer.
Add a test for HTTPServer's recently-acquired support for chunked requests.
Move outgoing HTTP header generation to HTTP1Connection.
Unify WSGI support with the HTTPConnection abstraction.

Deprecate WSGIApplication in favor of a WSGIAdapter that can wrap
an ordinary Application.

Remove the wsgi module's separate HTTPRequest variant and tornado.web's
wsgi special cases.
Pass start_line to headers_received as a tuple instead of a string.
Move chunked-response generation into http1connection.
Allow gzip to be used with WSGIApplication.

Now that transfer encodings have been moved to http1connection,
the content-level output transforms can be used with wsgi.
HTTPServer: Support requests that are received in multiple chunks.
Make Application an HTTPServerConnectionDelegate.

HTTPServer now forwards delegate events to its request callback
if it implements this interface.  This allows the application to be
in the loop as the request is being read.
Add chunk and callback arguments to write_headers.

This restores an optimization that allows small responses to be written out
in the same system call as the headers.
Stop overriding _execute in WebSocketHandler; use get() instead.

Revise HTTP1Connection detach protocol.

As a side effect, this now decodes the arguments to open() in the same
way as the arguments to get().