fix CPython compatibility problem on lookup failure in optimised PyDict_GetItem()
rewrite dict.setdefault() optimisation to fix double hashing in Py3
streamline fallback method calls in utility code
disable dict.setdefault() test in Py2.4 which tests for a bug in that version
remove spurious semicolons from C macros
fix test after changing internal method calling (test finally behaves as expected)
reduce attribute lookup overhead a bit
simplify pop() optimisation utility code
fix accidental double wrap-around of negative indices in pop() optimisation
fix test behaviour that varies depending on CPython version and py_debug setting
use Py2/3 specific builtin checks in dict.setdefault() optimisation
move __Pyx_GetName() into external utility file and make it use faster __Pyx_PyObject_GetAttrStr()