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