Fixes one of the remote-data tests mentioned in #2290.  Adds a simple context manager for turn_internet_off/turn_internet_on so that this particular test can work regardless of whether --remote-data is in use.
Catch a possible timeout that could occur while reading response data on a slow connection.  Fixes one of the issues with --remote-data tests referenced in #2290 and #2332
Explicitly encode keys going into the URL cache db as UTF-8 just to be consistent
Fix a few examples of astropy.tests.helper.raises mistakenly being used like py.test raises (the latter works a context manager, the former previously did not).  But this also goes ahead an makes astropy.tests.helper.raises pass through to pytest.raises when used as a context manager.  A little ambiguous, but at the same time makes this mistake less likely.
For reasons that I don't care to investigate any further, the recwarn fixture wasn't working properly for this test, but catch_warnings seems to do the trick
Per https://github.com/astropy/astropy/issues/2290#issuecomment-40372069, removing this test as the required data file is no longer online.

Conflicts:

	astropy/vo/client/tests/test_vo.py
Merge pull request #2405 from embray/fix-disable-internet-test

Fixes several of the remote-data tests mentioned in #2290