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.
DOC: Remove close method from memmap docstring.

Memmap objects no longer have a close method.
Merge pull request #4325 from charris/memmap-has-no-close

DOC: Remove close method from memmap docstring.
BUG: Index arrays need to be cast with SAME_KIND or FORCE casting

When checking index arrays for out of bound values, safe casting
was used. In principle this is unsafe, but we need to support indexing
with a 64bit integer array on 32bit systems.

Closes gh-4328
Merge pull request #4329 from seberg/index-casting-rule

BUG: Index arrays need to be cast with SAME_KIND or FORCE casting
Merge pull request #4321 from juliantaylor/half-sum-fix

BUG: fix initialized half sum
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.
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 from returns None instead of a dict of empty
lists if nothing is found.
DOC: update openblas fork warning with fixed pthread build info