scmutil: avoid using basestring and add explicit handling of unicodes
This resolves some Python 3 defects, and I don't think it is a
meaningful behavior change in Python 2.
Differential Revision: https://phab.mercurial-scm.org/D2611
pager.pager=p0 # $TESTTMP/sysrc:4
ui.editor=e1 # $TESTTMP/userrc:2
pager.pager=p2 # $PAGER
ui.editor=e1 # $TESTTMP/userrc:2