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
ENH: add faster boolean count by using wider data types

about 3-5 times faster on 64 bit machines, about 2 times faster on i386.
Merge pull request #3894 from juliantaylor/count_bool

ENH: add faster boolean count
BUG: linalg: don't tell BLAS to use zero strides

At least OSX Accelerate fails for this case.
STY: linalg: fix C comment style
Merge pull request #3902 from pv/fix-linalg-stride-pt2

BUG: linalg: don't tell BLAS to use zero strides