Deprecate non integer arguments

This is gh-2891 rebased (with slight modifications in mapping.c). So basically all things said there still apply. To wrap it up, this deprecates non-integer usage almost everywhere (which means strides, shapes, axes, indices, slices), by deprecating it in PyArray_PyIntAsIntp.

Also deprecates `__index__` for ndim > 0.

I did go a bit further and deprecated python bools, too. If this starts bugging someone, that should maybe be made indexing specific.

I guess this might still need some love. The deprecation tests are not too great, but when errors get replaced it needs to test both warning and error. And they change, because previously they raised DeprecationWarnings (as errors) and now these are usually replaced.