Gracefully failing tests in Ruby 2.0

One of the IO upload tests for the `NetHTTPBackend` was stalling out and never completing. This patch rearranges the lines of that test to break it into multiple tests, and wraps them in a `timeout` block so they fail instead of remaining undead forever.