DOC: Note nanpercentile in 1.9.0 release notes.
Optimization for pickling random states

-- Addresses https://github.com/numpy/numpy/issues/4763
DOC: add versionadded tags to meshgrid arguments

[ci skip]
Merge pull request #4769 from juliantaylor/mesh-doc

DOC: add versionadded tags to meshgrid arguments
Merge pull request #4757 from charris/update-1.9.0-release-notes

DOC: Note nanpercentile in 1.9.0 release notes.
ENH: add storage format 2.0 with 4 byte header length size

The new format only increases the header length field to 4 bytes.
allows storing structured arrays with a large number of named columns.
The dtype serialization for these can exceed the 2 byte header length
field required by the 1.0 format.
The generic functions automatically use the 2.0 format if the to be
stored data requires it. To avoid unintentional incompatibilies a
UserWarning is emitted when this happens.
If the format is not required the more compatible 1.0 format is used.

Closes gh-4690
Merge pull request #4768 from depristo/master

ENH: Optimization for pickling random states

the constructor intended for pickling initializes its state via reading /dev/urandom which can be expensive on virtual machines. as the pickle constructor just needs to create any state which will later be initialized these urandom reads are unnecessary.
DOC: Fix indentation and add missing blank lines for meshgrid doc.
Merge pull request #4770 from charris/meshgrid-doc-maintenance

DOC: Fix indentation and add missing blank lines for meshgrid doc.
Merge pull request #4765 from juliantaylor/npyformat-2.0

ENH: add storage format 2.0 with 4 byte header size
ENH: use sparse meshgrid instead of indices().tolist()

tolist() converts numpy integers to python integers which are converted
back to numpy integers by the indexing.
meshgrid(indexing='ij') returns the indices wanted here as the right type.
triples performance of sorting a size=(200, 200, 50) array along axis 2
and reduces memory usage by almost 40%.
ENH: rewrite ma.median to improve poor performance for multiple dimensions

many masked median along a small dimension is extremely slow due to the
usage of apply_along_axis which iterates fully in python. The unmasked
median is about 1000x faster.

Work around this issue by using indexing to select the median element
instead of apply_along_axis.

Further improvements are possible, e.g. using the current np.nanmedian
approach for masked medians along large dimensions so partition is used
instead of sort or to extend partition to allow broadcasting over
multiple elements.

Closes gh-4683.
ENH: use masked median for small multidimensional nanmedians
Merge pull request #4760 from juliantaylor/masked-median

ENH: rewrite ma.median to improve poor performance for multiple dimensions