use constant flags to move wraparound/boundscheck evaluation into inlined Get/Set/DelItemInt() utility functions
minor code cleanup
optimise isinstance(obj, basestring) and map basestring to unicode in Py3
fix C compiler warnings about unused parameters
correct name for basestring in Py3 to 'str' (not 'unicode')
Revert "Disallow C++ exception declarations for non-extern functions."

This reverts commit 496c0fd91bdaab3de3df7d084db95d5c90101104.