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.
Add iostream.write_buffer_size property.
Add max_write_buffer_size to iostream.
Remove `write_buffer_size` read-only property.
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.