Add rudimentary Timeout class

This is just to get the tests passing, it shouldn't change any behavior at the moment. I just want to make sure we are on the same page with regards to the proposed interface.

You can now specify Timeout values with urlopen(timeout=util.Timeout(request=20))
in addition to the usual float/int ways of specifying it.

Also adds a test case for the old and the new way of specifying a timeout.