reliably checking if we have a basestring in our builtins for Py2 and Py3 by importing the main __builtin__ rather than relying on the locally-modifiable __builtins__ dict. fixes #79