Fix beahviour in Windows and allow bypassing urllib

Hi,

I've made 2 small changes to make it work in Widnows.
using "os.path.normpath" on a url, messes up / and \

And, I allow people to pass an "open()" object in case the default urllib.open() is not enough (special http headers for instance, or using urlgrabber)
If I pass a string, then I loose the logic to calculate baseuri.

Andrea