Test basestring instead of str in Symbol

Also, raise TypeError instead of AssertionError on bad arguments.
Merge pull request #1894 from asmeurer/symbol_unicode

Test basestring instead of str in Symbol