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.
Refactor unittest/unittest2 imports to fix issues with unittest2 on py3.

Never use unittest2 on python 3 (it appears to not interoperate with
the standard unittest module).  On python 2, use the same logic in
tornado.testing and tornado.test.util to select an implementation.

Fixes #1005.
Update links for comments about json list output.

The vulnerability in the older link affects only ancient browsers,
but there are other issues that are more recent.

Fixes #1009.
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.