When io.BufferedReader (and others) are init-ed based on a file
descriptor, their name attribute will be an integer. Handle these
objects by explicitly checking for an integer type in guess_format() and
setting sane values (empty strings).
We don't trap an exception because Python 2 and 3 throw different types;
AttributeError and TypeError, respectively. So, this way seemed cleaner.