Merge pull request #4055 from takluyver/patch-2

MAINT: Update links to numpydoc source code and README
DOC: use variable names in formula for convolve

Use the variables names `a` and `v` as used in the function instead of
using `f` and `g`. This makes it clearer which array "slides" along the other.
Fix typo.
Merge pull request #4047 from arunpersaud/convolve_doc

DOC: use variable names in formula for convolve
Merge pull request #4056 from herr-biber/master

Fix typo.
Merge pull request #4020 from juliantaylor/memcrash

BUG: fix missing check for memory allocation failure in ufuncs
MAINT: make NPY_CPU_HAVE_UNALIGNED_ACCESS a numeric macro

allows using it in if statements like for count_nonzero
also fix a compiler warning by casting
Merge pull request #4057 from juliantaylor/unaligned-macro

MAINT: make NPY_CPU_HAVE_UNALIGNED_ACCESS a numeric macro
ENH: improve add_newdocs performance

replace slow exec with a direct __import__.
improves `import numpy` speed by about 10%.
Merge pull request #3980 from larsmans/refactor-gemm-gemv

MAINT: dotblas: factor out all gemm and gemv calls
DOC: Improved doc for boolean array indexing
Merge pull request #4064 from juliantaylor/import-speed

ENH: improve add_newdocs performance
BUG/ENH: blasdot: make *dot calls 64-bit safe

BLAS uses int for all its size types, so the size is going to be
silently truncated on platforms where sizeof npy_intp > sizeof int,
i.e. on modern 64-bit platforms. In this case, we do a dot product
in reasonably-sized chunks and add the result ourselves.

On platforms where sizeof(int) == sizeof(npy_intp), i.e. typical
32-bit platforms, it's up to the compiler to optimize the loop away.

Also tried to make the code more readable, replaced int by npy_intp
in a few places and removed useless register declarations (modern
compilers ignore those).
ENH: dotblas: re-route all cblas_?dot calls to chunked versions

Also factored out and simplified NumPy->BLAS stride conversion.
ENH: Use nditer in numpy.save to stream bytes to custom file objects
TST: Increase test coverage of numpy.save/load roundtrips
Merge pull request #4077 from ogrisel/streaming-numpy-save

Streaming numpy.save to arbitrary file objects
ENH: intern some commonly used strings in umath module

Allows using the PyObject dictionary functions instead of the costly
C-string variants.

Make use of this in some of the ufunc subtype wrapper functions.

Improvement:

    a, b = np.arange(200.), np.arange(200.)
    %timeit np.add(a, b, out=a)
    1000000 loops, best of 3: 768 ns per loop

vs before:

    %timeit np.add(a, b, out=a)
    1000000 loops, best of 3: 1.03 µs per loop
ENH: skip redundant checking of subok keyword in _find_array_prepare

all currently existing callers only call this function if subok has
already been checked to be true, but keep the code to make clear it has
to be checked.
DOC: further improvements for boolean array indexing doc