Update urrlib.request.urlopen monkeypatching
The function urllib.request.urlopen()
can accept either a URL
string or a urllib.request.Request
instance. It seems that
astropy.utils.data
sometimes uses the latter, so our monkeypatch
code needs to be able to handle that case.