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.
STY: pep8 for npyio

Various pep8 fixes for npyio.py
Also reorganized the imports, and removed the unnecessary (I hope)
`_string_like = _is_string_like` statement.
MAINT: accept NULL in NpyIter_Deallocate and remove redundant NULL checks

Deallocation should just do nothing if provided a NULL pointer nditer
deletion broke this convention.
Removed many redundant NULL checks for various deallocation functions
used in numpy, they all end up in standard C free or PyMem_Free which
are both NULL safe.
STY: pep8 for npyio continued

Two slight style modifications in npyio, regarding line length.
TST: linalg: add more comprehensive test cases for linalg funcs

Also remove TestCase subclassing, so that generator tests work.  Also
fix bugs in the existing generator tests that were not actually run
previously.
BUG: linalg: use correct BLAS incx convention in xCOPY
BUG: linalg: fix eigvalsh return type (always real-valued)
MAINT: linalg: strip out unused gufuncs_linalg code

Some of the functions removed were untested, and apparently did not
function correctly (cholesky_up, inner1d, maybe more).
TST: linalg: add slightly bigger test case + don't catch KeyboardInterrupt
TST: linalg: better rtol choice
Merge pull request #3880 from pv/linalg-stride-fix

Fix bugs in umath_linalg + add more tests + remove unused code
BUG: Disable check for oldstyle classes in python3

Fixes gh-2561
TST: Regression test for gh-2561
DOC: Update 1.8.0 release notes.

Order highlights by significance. This is a subjective judgement.
Mention the linalg enhancements and illustrate with an example.
Update memmap.py

Clarify `memmap` docstring to better reflect the meaning of *offset*.
Merge pull request #3886 from charris/update-1.8.0-notes

DOC: Update 1.8.0 release notes.
Merge pull request #3890 from andreas-h/patch-1

Update memmap.py
TST: Raise AssertionError on failure