Add backports.ssl_match_hostname dependency in place of our copy.

This function has changed recently and it makes more sense to stop
maintaining a separate copy, even though it does introduce our first
required dependency.
Replace cython-based extension module with a hand-written one.

This avoids the complexity of ensuring that cython is installed
at build time.
Make the C extension optional.
Point Ubuntu 12.04 Vagrant file to a readily-available base image.
Fix speedups.c when compiled with gcc instead of clang.
Catch exceptions from parse_qs_bytes in POST bodies and log them.

This is consistent with error handling for multipart/form-data.
parse_qs is very liberal, but the conversion to unicode
on python 3 may fail.  This is most common for binary data sent from
clients where x-www-form-urlencoded is the default, which is not
actually intended to be interpreted as arguments.

Closes #921.
Document the fact that WebSocketClientConnection should not be used directly.

Closes #929.
Clean up some uncollectable garbage in the test suite.
Update next-release notes and document the asyncio module.
Document the HTTPResponse.effective_url attribute.
add custom fmt and datefmt to LogFormatter
Pass timeout argument to Future.result
Raise TypeError instead of AssertionError.
Speed up gen.corouting when yielding done Futures
Reset state on `start()` end
Merge pull request #937 from lepture/fix-assert

Raise TypeError instead of AssertionError.
Merge pull request #936 from ticosax/add-timeout-on-future

Pass timeout argument to Future.result
Document the attributes required by @run_on_executor.

Closes #933.
Avoid a quote mark that renders incorrectly in PDF mode.

Closes #935.
Merge pull request #931 from SuminAndrew/LogFormatter-format

add custom fmt and datefmt to LogFormatter