safehasattr: pass attribute name as string instead of bytes
This is a step toward replacing `util.safehasattr` usage with plain `hasattr`.
The builtin function behave poorly in Python2 but this was fixed in Python3.
These change are done one by one as they tend to have a small odd to trigger
puzzling breackage.
#require black test-repo
Black needs the real USERPROFILE in order to run on Windows
#if msys
$ USERPROFILE="$REALUSERPROFILE"
$ export USERPROFILE
#endif
$ cd $RUNTESTDIR/..
$ black --check --diff `hg files 'set:(**.py + grep("^#!.*python")) - mercurial/thirdparty/**'`