MAINT: adept divisions for truedivide

Following deprecations would cause problems otherwise.
API: Deprecating the use of non-integers for indices arguments

This changes the conversion utils to give deprecations for a all
non-integers (this currently includes python bools). The biggest
change is PyArray_PyIntAsIntp in which the deprecation is done.
Some other conversions are then also pointed to it.

Uses the Index machinery even for numpy types, which is faster
then the current code.
API: Deprecate __index__ for ndim > 0

For example NumPy indexing treats np.ones(()) very differently from
np.ones((1,)). It seems a bad idea to allow __index__ for arrays that
are not 0-d, as they cannot always be safely interpreted as integers.
MAINT: Remove non-integer deprecations which are now in PyIntAsIntp

Also removed old (commented) macro, the use of PyNumber_Index is
now actually implemented in PyIntAsIntp and not necessary here.

Removes PyIndex_Check compatibility macros, since we do not support
python < 2.5 anymore.

Change integer conversion error to IndexError, previously these
fell through and eventually became an IndexError.
TST: Rework test_deprecations.py and add new tests.
STY: style and small doc fixes for integer deprecations
MAINT: Create new function PyArray_IntpFromIndexSequence

This function uses npy_intp to in principle support larger then
int sequence lengths.
DOC: Add integer deprecations to release notes

(also minor spelling fix in comments)
MAINT: Use warnings context manager instead of doing it by hand
STY: Style fixes for integer deprecation changes

Also minor changes in the documentation.
MAINT: Minor style fix and integer conversion optimizations
MAINT: Disallow np.bool_ being used as integer

This makes the deprecation of bools used as integers complete
from the numpy perspective. It would not be unsensible to move
the bool checks into indexing specific code though.
Merge pull request #3243 from seberg/deprecate-non-integer-arguments-new

Deprecate non integer arguments