BUG: Fix np.insert with negative axis.

In some cases a negative axis argument to np.insert would result
in wrong behaviour due to np.rollaxis, add modulo operation to
avoid this (an error is still raised due to arr.shape[axis]).

Closes gh-3494
TST: add test for negative axis values in np.insert.
Merge pull request #3570 from seberg/backport-3497

Backport 3497
Update halffloat.c

Corrected preprocessor form.
BUG: Boolean assignment allowed writing to 0-sized array

This was because of the assumption that broadcasting works
if the dimension is not > 1, but correct is != 1.

Adepted from a patch provided by prossahl, backports gh-3575
Merge pull request #3578 from charris/backport-gh3541

Update halffloat.c
Merge pull request #3577 from seberg/backport-issue-3458

Backport gh-3575
TST: Test for x.fill(tuple) where x is a struct array
BUG: Fix to allow x.fill(tuple) where x is a struct array
TST: Add test for reduceat ufunc regression on zero-sized array
BUG: Fix ufunc.reduceat regression with empty index (gh-2892)
TST: Change reduceat empty test to use i4 indices

On 32-bit platforms, was failing in casting the test
i8 index to i4. It may be desirable to allow this
in reduceat, but that change is independent of this pull
request.
TST: Add test for additional ufunc.reduceat empty parameter case
BUG: Fix additional zero-sized index case for ufunc.reduceat
Merge pull request #3618 from charris/backport-2893

Backport 2893
Merge pull request #3610 from charris/backport-3609

Backport 3609
ENH: Remove the need for temporary copies in numpy.dot

in numpy core, modified the blas function call to handle
C and F order arrays without the need for copy.
This brings a significant speed up for matrix multiplication
Added a full test for matrix multiplication in test_blasdot
(cherry picked from commit ea037770e03f23aca1a06274a1a8e8bf0e0e2ee4)
REL: fix version in maintenance branch.
BLD: restore compatibility with ANSI C
Merge pull request #3652 from cgohlke/patch-1

BLD: restore compatibility with ANSI C