py3: more tests from the ratchet
Differential Revision: https://phab.mercurial-scm.org/D5730
dispatch: unify handler of IOError and OSError
These exceptions were merged in Python 3.
dispatch: quote filename in IOError as well
It's explicitly added for OSError at
720308f741cb "dispatch: show empty
filename in OSError aborts". Let's do the same for IOError.
dispatch: add inline comment about possible IOError subtypes
It's hard to tell which "if" would handle which exception.