Broaden catch clause in extension building.

This should allow Tornado to be installed again on OSX with no
compiler available.

Closes #1074.
The next version will be 4.0, not 3.3, so update all references to 3.3.
When a function on the IOLoop returns a Future, log its exception.
Add ETIMEDOUT to the list of relatively benign unclean-close errnos.
Remove async_callback wrapper functions, which have been obsolete since 1.1.

Closes #283.
Improve callback scheduling.

Collect all timeouts to be run before running any of them; this
prevents starvation when a slow callback reschedules itself.

Call time() again before setting poll_timeout to avoid scheduling
anomalies with slow callbacks.

Closes #947.
Document AsyncHTTPClient's defaults argument.

Closes #762.
Add clearer message for fetch() on closed AsyncHTTPClient.

Closes #866.
Document that IOStream.connect blocks on DNS and recommend TCPClient instead.

Closes #861.
Relax restrictions on HTTP methods in WebSocketHandler.

Methods like set_status are now disallowed once the websocket handshake
has begun, but may be used before then.  This applies to application
overrides of prepare() and to WebSocketHandler.get's internal error
handling.

Closes #1065.
Rename HTTP{In,Out}putException to HTTP{In,Out}putError.

This follows the standard python naming convention for exceptions.
Introduce IOLoop.spawn_callback.

This makes it easier and more discoverable to run a callback without
stack_context.

Closes #867.
Fix a leak in AsyncHTTPClient shutdown.

Clients created without force_instance=True were never getting
GC'd because we were using the wrong reference for the async_clients
instance cache.

To guard against future errors, failure to remove an instance
from the cache when we expected to now raises an error instead of
failing silently.

Closes #1079.
Introduce IOLoop.call_later and call_at.

call_later is a less-verbose alternative to add_timeout with a
timedelta; call_at exists for symmetry.  Both are named after
methods on the asyncio event loop, although there are small
variations (we support both args and kwargs while asyncio only supports
args; we use remove_timeout(handle) instead of handle.cancel()).

Closes #1049.
Add new exception tornado.web.Finish to quietly end a request.

This allows error pages to be generated inline with the main code
instead of in write_error and is friendlier to generating error pages
from library code.

Closes #1064.
Release note updates.
Add pypy3 to tox.ini.
Remove workarounds for ancient versions of libcurl.
Remove support for the old get_error_html function.
Increase the test timeout on travis.