BUG: fix handling of negative strides in npy_memchr

the new code did not account for them at all, add the old loops back but
keep the stride 1 optimization for sparse masks.
MAINT: remove trailing zero count path in npy_memchr

its only actually faster than just running through the trailing bytewise
loop if the needle is in the last byte.
BUG: fix broken UPLO of eigh in python3

UPLO was cast to bytes and compared to a string which is always false in
python3.
closes gh-3977
MAINT: runtests: enable generation of C code coverage info via gcov
Merge pull request #3969 from juliantaylor/memchr-bug2

BUG: fix handling of negative strides in npy_memchr
BUG: reject invalid UPLO with ValueError in eigh/eigvalsh

to prevent unintentional use of wrong function. Restores 1.7 behavior.
Merge pull request #3979 from pv/gcov

MAINT: runtests: enable generation of C code coverage info via gcov
Merge pull request #3978 from juliantaylor/py3-eigh-bug

BUG: fix broken UPLO of eigh in python3
ENH: Attempt to rewrite the index parsing.

Some optimizations still missing.
WIP: Speed improvements by using EXTERNAL_LOOP
WIP,TST: Fix tests to match new behaviour
WIP: use fast_take and fix Deprecations
WIP,TST: Small fixes for the tests
WIP: bug fixes and field oder access change
WIP,TST: Fixup python3 tests
WIP: fix field order; And MapIterNext iteration end
WIP,TST,DOC: tiny fix

maybe triggers Travis too...
WIP: Move Ellipsis setting check and clear warnings
WIP: Restore binary compatibility of MapIterObject (hopefully)
WIP,ENH: Already allow boolean scalars for 0-d arrays

Since indexing into a 0-d array with an integer is impossible,
we can disable any conversion/interpretation is integer code
to special case the 0-d array for now and fix this annoying
issue...