Fixes

- NumPy letter code mismatch on some arch
- Revive inspect_types()
- Scalar ufunc tests should be using numpy scalar object to ensure the same coercion behavior
Is there a reason to keep _compileinfos and overloads as separate dictionaries?  It looks like `overloads[key]` could be replaced with `_compileinfos[key].entry_point` everwhere.