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.
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
Merge pull request #3885 from Nodd/py3_info

BUG: Disable check for oldstyle classes in python3 (np.info)
STY: pepe8 for npyio continued 2 (typo)

fixing one typo in npyio.py
Merge pull request #3829 from jarondl/pep8-npyio

STY: pep8 for npyio
DOC: Notes on backporting.
Merge pull request #3888 from cowlicks/backporting-docs

DOC: Notes on backporting.
Merge pull request #3862 from juliantaylor/null-free

MAINT: accept NULL in NpyIter_Deallocate and remove redundant NULL checks
Ensure NotImplemented is passed on in MaskedArray ufunc's