Fall back to pure-python mode on any exception during the build.

Stop the futile process of trying to enumerate which kinds of exceptions
distutils may throw (the latest potential addition: ValueError).

Closes #1115.
Add missing return statements to call_at and call_later.

Closes #1119.
Fix `PeriodicCallback' when callback function return `Future' and has
`Exception' will silence ignore
Fix `IOStream' when callback function return `Future' and has
`Exception' will silence ignore
Fix an AttributeError in WebSocketClientConnection._on_close.

Fix an issue that was preventing this issue from showing up in my
tests.

Closes #1140.
Correctly handle 204 response codes that do not include a content-length.

If a server sends a 204 with no content-length we would wait for the server
to close the connection instead of ending the request (any such servers
are ignoring the "Connection: close" header we send, but apparently exist).

Move some content-length logic from simple_httpclient.py to http1connection.py.

Fix the client-side use of on_connection_close; this affects the
handling of any HTTPInputException.

This fixes regressions relative to Tornado 3.2.

Conflicts:
	tornado/websocket.py
Add release notes for 4.0.1 and update version number.
Set version number to 4.0.1.