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.
BUG: Allos linalg.solve to handle zero equations.

This was previously correct, but the special case was missing
since the gufunc code cannot handle it.
Merge pull request #3848 from seberg/solve_0k

BUG: Allos linalg.solve to handle zero equations.
BUG: preserve ndarray subclasses in median

closes gh-3846
Merge pull request #3851 from juliantaylor/median-subclass

BUG: preserve ndarray subclasses in median
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.
BUG: ensure percentile has same output structure as in 1.8

percentile returned scalars and lists of arrays in 1.8
adapt new percentile to return scalar and arrays with q dimension first
for compatibility.
DOC: make docstrings of matrix properties (.T, .H, .I, .A, .A1) work.

Closes gh-1939.
Merge pull request #3865 from rgommers/matrixprop-docs

DOC: make docstrings of matrix properties (.T, .H, .I, .A, .A1) work.
BUG: Refactor nanfunctions to behave as agreed on for 1.9.

    Deal with subclasses of ndarray, like pandas.Series and matrix.

        Subclasses may not define the new keyword keepdims or deal
        gracefully with ufuncs in all their forms. This is solved by
        throwing the problem onto the np.sum, np.any, etc. functions
        that have ugly hacks to deal with the problem.

    Settle handling of all-nan slices.

        nanmax, nanmin -- Raise warning, return NaN for slice.
        nanargmax, nanargmin -- Raise ValueError.
        nansum -- Return 0 for slice.
        nanmean, nanvar, nanstd -- Raise warning, return NaN for slice.

    Make NaN functions work for scalar arguments.

        This may seem silly, but it removes a check for special cases.

    Update tests

        Deal with new all-nan handling.
        Test with matrix class as example of subclass without keepdims.
        Test with scalar arguments.

    Fix nanvar issue reported in #3860.

    Closes #3860 #3850
BUG: Make ndarray.{var, std} work for scalars.
Merge pull request #3866 from charris/refactor-1.9-nanfunctions

Refactor 1.9 nanfunctions
DOC: fix signature of NpyIter_GetIterNext in capi doc
DOC: add highlights to release notes and rewrite and move some sections

closes gh-3842, gh-3843
Merge pull request #3868 from charris/forwardport-1.9-3859

Forwardport 1.9 3859
DOC: Tweak the 1.8.0 release notes.

Add the new nan functions and linear algebra gufuncs to highlights.
Tweak some rst formatting.
Merge pull request #3769 from juliantaylor/percentile-compat

BUG: ensure percentile has same output structure as in 1.8
Merge pull request #3869 from charris/tweak-1.8-notes

DOC: Tweak the 1.8.0 release notes.
STY: pep8 for npyio continued

Two slight style modifications in npyio, regarding line length.
BUG: Include sunmath.h in npy_math.h when __SUNPRO_CC defined.

The include is needed for isinf.

Closes #3871.