BUG: Fix CheckStrides and strides setter checks for available memory

This changes the logic of PyArray_CheckStrides to really check the
full extent the new array will have. It also changes the stride
setting to calculate the full real extent of the underlying array
without assuming (usually correctly) that the strides of the base
array are regular.

Add some tests for cases that previously failed.
This "closes Issue gh-2503"
MAINT: Move offset calculations into special function

Also adds a test to check offset calculation is correct when
setting strides for a base array with negative strides.
MAINT: Remove unneeded comment form arrayobject.h
MAINT: Remove unneeded include from ndarraytypes.h.
MAINT: Add some macros to noprefix.h

Some of these are probably new unprefixed macros, but adding them
makes for a bit more safety. The unprefixed macros will be deprecated
at some point, so this probably has no side effects.
MAINT: Gather NPY_SIZEOF* macros into one spot.
MAINT: Remove tabs from numpyconfig.h.
BUG: Fixup use of undefined macros and remove redundant code.

The npy_config.h file used SIZEOF_DOUBLE and SIZEOF_LONG_DOUBLE, neither
of which was defined in the included config.h file. That was fixed by
including numpyconfig.h. Doing so made the code dealing with Apple type
sizes redundant as it is already present in numpyconfig.h, so it was
removed.
BUG: Replace unprefixed SIZEOF_* macros with prefixed versions.

The sources don't define NPY_NO_PREFIX and consequently none of the
unprefixed macros are defined. Using them can lead to some unexpected
results.
Merge pull request #2887 from charris/fix-unprefixed-sizeof-macros

BUG: Replace unprefixed SIZEOF_* macros with prefixed versions.
MAINT: Minor cleanup

Adding const and removing old comment.
MAINT: Remove newly defined non-prefixed macros from noprefix.h.

There was a chance that they could conflict with user defined macros.
Merge pull request #2888 from charris/fix-headers

Fix headers
Merge pull request #2882 from seberg/issue2503

BUG: Fix CheckStrides and strides setter checks for available memory