New argument parsing scheme.

This is to replace PyArg_ParseTupleAndKeywords, is slow and duplicates
strings when keywords are passed, and to replace the hand-rolled parsing
from yesterday. Performance is about the same as hand-rolled, while
code-size and convenience are comparable to PyArg_ParseTupleAndKeywords.

Presence of NOINLINE may or may not be providing a speedup, leaving it
in for the time being.