ENH: ma.asarray() and ma.asanyarray() will pass through input of the correct type.

If x is of type MaskedArray for ma.asarray(x) or any subtype of
MaskedArray for ma.asanyarray(x), these functions will simply return x.
This makes them consistent with their numpy counterparts.

Closes gh-4043.
BUG: Fixed mask_rowcols().

Previous implementation relied on ma.asarray() to always create
a new object.

See gh-4043.
Fix histogramdd treatment of events at rightmost binedge

Fixes Github issue #4266
BUG: Make interp return NaN at NaN interpolation points.

A NaN interpolation point was interpreted as out of bounds on the left
side, hence the value of the left parameter in the function call was
returned.

>>> np.interp(np.nan, [-10, 10], [-2, 2])
-2.0

NaN is a better choice.

Closes #605.
BUG: #4256: f2py, PyString_FromStringAndSize is undefined in Python3.

Use PyUString_FromStringAndSize defined in npy_3kcompat instead. Not
using bytes may cause some problems, but strings seem like a better
choice. As modules generated with current f2py error out, this
particular use is not common and we are free to choose.

Closes #4256.
BUG: #2408, Fix f2py Python 3 error message string bug.

The original was generating an exception message and, after aliasing,
calling PyBytes_AsString on a unicode string -> error. It was also
leaking references, although that probably didn't matter in context.

The fix here is on the cheap side, just use a C string for the message
without including the extra information about the erroneous type that
led to the exception.

No test, I don't know how to evoke this error.

Closes #2408.
BUG: fix initialized half sum

pairwise summation added in 1.9 broke half sums if the first element is
initialized non-zero. E.g. d += x
Fix seterr example for resetting to old settings
Merge pull request #4321 from juliantaylor/half-sum-fix

BUG: fix initialized half sum
MAINT: #2312, Make all tofile failures raise IOError.

Fix two that were raising ValueError instead.
Make some style cleanups.

Closes #2312.
DOC: Document tofile exception changes in 1.9.0 release notes.
Merge pull request #4305 from charris/fix-gh-4256

BUG: #4256: f2py, PyString_FromStringAndSize is undefined in Python3.
Merge pull request #4315 from charris/fix-gh-2408

BUG: #2408, Fix f2py Python 3 error message string bug.
numpy.i bugfix: fortran ordering check

for ARGOUTVIEWM?_FARRAY[34] typemaps, the included require_fortran check was inverted -- failing if the resulting array had fortran ordering, not if it did not.  This modification inverts these checks.
BUG: Fix broadcasting in np.cross (solves #2624)

Changed np.cross to move the axis it's operating on to the end, not the
beginning of the shape tuple, and used rollaxis, not swapaxes, so that
normal broadcasting rules apply.
There were no tests in place, so I added some validation of results and
broadcasted shapes, including the one reported in #2624
TST: Added out of bounds axis checking to the tests.
ENH: Minimize temporary intermediate arrays using a preallocated
     output array and in-place operations.
DOC: Added 'Supports full broadcasting' note to the docstring.
TST: do not use "ignore" to filter warnings

When a warning is ignored (or raised once) in python, the warnings
module will tag on a `__warningregistry__` dictionary to be able
to filter these warnings in the future. This is tagged on to the
current context, causing leakage to later calls (this is a bit
more complex, since where the registry ends up depends on the
layers between the original caller and warner).

In short, tests should typically not use ignore but catch the
warnings to avoid changing the user experience (or errors
on duplicate test runs).

Fixes an error on duplicate test runs (does not remove all
"ignores" which may change behaviour outside tests).
Closes gh-4340
Merge pull request #4342 from seberg/issue-4340

TST: do not use "ignore" to filter warnings
BUG: get_info('openblas') does not read libraries key

The documented libraries tag in the site.cfg is not read by the configuration,
instead openblas_libs is used, this is inconsistent with atlas configuration.
So libraries first and then try openblas_libs for backward compatibility.

Also ensure check_libs returns None instead of a dict of empty lists if
nothing is found.
DOC: update openblas fork warning with fixed pthread build info