Update _opener.py

size should always be reported if it exists, not only when reporthook is valid. Also, dont need the repetitive initial call to reporthook. changed up the loop to make it more pythonic. 

I was trying to find a memory error that is showing up on OSX for extremely large files > 30GB.