BUG: Fix performance regression for PyObject_Get/SetItem

Also restructures the calling conventions a little to channel
all calls through the general functions, this will add a little
overhead and could be streamlined if necessary.
BUG: Raise some out of bound negative index in PySequence_GetItem

PySequence_GetItem and PySequence_SetItem already fix a negative
index, so that we do not need to fix it as well.

Also clean up a little/doc fixes
Merge pull request #4289 from seberg/speed-regression-fix

BUG: Fix performance regression for PyObject_Get/SetItem