BLD: allow strings for check_func declarations

makes attribute checks more sane and allows adding nonnull
MAINT: annotate reference stealing and burrowed refs in multiarray

allows for better static analysis report with e.g. cpychecker
MAINT: add a few nonnull attributes to array creation functions

also fix wrong capi documentation of PyArray_NewFromDescr stating it
accepts NULL dtype while it does not.
DOC: fixed typo
DOC: standardize "size" argument description in docstrings for functions of random module

there were many different versions for no good reason
MAINT: always use tuples for api index values

simplifies the generation logic a bit
BUG: Hold GIL for types with fields, fixes #4642

Set the `NPY_NEEDS_PYAPI` flag for types with fields, as these need
access to the Python API to manipulate the tuples and dicts holding
field information. It remains unset for the base `np.void` type.
Merge pull request #4640 from gdementen/patch-1

DOC: fixed typo
MAINT: replace multiarray_global_vars_types by using tuples
Merge pull request #4637 from juliantaylor/api-annotate

annotate reference semantics of c-api
Merge pull request #4648 from jaimefrio/void-api

BUG: Hold GIL for types with fields, fix #4642
Merge pull request #4641 from gdementen/random_docstring_fixes

DOC: standardize "size" arg description in random module docstrings