ENH: speed up intp multiply overflow check

Avoid expensive division by checking against half size of the result first.
Speeds up PyArray_NewFromDescr by a factor of two according to perf.
Could still be further improved by making use of cpu overflow flags, e.g. via
clangs __builtin_mul_with_overflow or using gccs __int128 type.
ENH: reduce calls to npy_is_aligned in _IsAligned

one can just bitwise_or the memory and all strides and call npy_is_aligned on
that to get the same result.
TST: improve test speed

move slow test_memmap_roundtrip to slow tests
decrease excessively large array size used in np.sin(x) compuation
TestInterp.test_if_len_x_is_small, the code has no special path for this
large size differences.
Ensure NotImplemented is passed on in MaskedArray ufunc's
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.
Add test cases to ensure NotImplemented is passed on
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
Small corrections to tests
Merge pull request #3900 from mhvk/ma/pass-on-NotImplemented

BUG Ensure NotImplemented is passed on in MaskedArray ufunc's
Convert docstrings to comments for nose; PEP8 cleanup (some tests activated)
Small further cleanups of ma.tests, plus correction for python3
One revert (comparisons with None; not PEP8, but good to check); extra comments
MAINT: update runtests.py from scipy

The additional chdir before starting the test allows tests that launch
subprocesses to run.

Fixes gh-3909
Merge pull request #3910 from pv/runtests-fix

MAINT: update runtests.py from scipy
Merge pull request #3906 from mhvk/ma/test-pep8-and-cleanup

Convert docstrings to comments for nose; PEP8 cleanup (some tests activated)
Merge pull request #3820 from juliantaylor/microopt

A couple micro optimizations
MAINT: add src/private in build_dir to include search paths

allows generating headers like npy_partition.h with the code generator