py: Allow keyword arguments for namedtuple

Only reason the return type is signed is so you can return -1 to indicate not found.  So you can in fact make the return type unsigned (mp_uint_t) and still return -1 for not found, but then the caller must check for ret==-1 instead of ret<0.  That's fine and should never overflow, since mp_uint_t is machine word, and can't have more than 2^machine-bits / wordsize objects.