Use _try_inline_read instead of _read_from_buffer in read_until_close.

Closes #686.
Capture the stack context of gen callbacks as they are generated.

This guards against functions that add their own stack context
without wrapping their callbacks.
Use native strings instead of byte strings for oauth responses.
On python 3, json_encode no longer supports byte strings as input.

This matches the behavior of the underlying json library.
recursive_unicode was more expensive than the actual json encoding for
complex structures, and was useless on python 2.
Rewrite travis.yml to make it simpler and more comprehensive.

Unlike tox, travis never reuses virtualenvs so setup/install time dominates.
Each test configuration only takes a few seconds once everything is
installed, so it's better to run fewer environments with lots of tests
in each.

This reduces the configuration to 10 environments (two for each python version,
with and without dependencies installed).  All tests are run in every
environment where they can run (unlike the tox config, which has many
variants that only run under py27)
Fix TwistedIOLoop on python 2.6.
Fix the inevitable typos in .travis.yml.
travis.yml: skip caresresolver test on pypy.
sphinx: Set the html_theme variable explicitly.

This should let our custom css show on readthedocs.org.