Raise error if we don't get text back from listdir

Rather than waiting for it to raise an exception when trying to add
a unicode and bytestring together, we should raise an exception if
we don't get a text type back.  This indicates that listdir() could
not decode the directory contents using sys.getfilesystemencoding().