MAINT: accept NULL in NpyIter_Deallocate and remove redundant NULL checks

Deallocation should just do nothing if provided a NULL pointer nditer
deletion broke this convention.
Removed many redundant NULL checks for various deallocation functions
used in numpy, they all end up in standard C free or PyMem_Free which
are both NULL safe.
Merge pull request #3862 from juliantaylor/null-free

MAINT: accept NULL in NpyIter_Deallocate and remove redundant NULL checks