DEP: non-integer scalar python sequence repeat

This starts deprecation for code such as
np.float_(3.4) * [1, 2]
which should only work for integer objects. It may be possible
to just return NotImplemented since at least python sequences
implement their multiply themself through __index__.

Further action is only needed for PyArray_PyIntAsIntp, so this
is part of a larger deprecation now.

Closes gh-4036
DOC: Add an example of casting array type and byte order using astype.
DOC: Spelling correction for numpy.diag see also
Merge pull request #4037 from migueldvb/docs

Example to convert the type of an array using the astype method and minor typo fix
Spelling: loose -> lose
spelling: AC -> AD in years

(could also use BCE and CE to be more politically correct)
BUG: ma.compressed() function returns masked array

When a masked array with nomask was passed to ma.compressed()
function, the result was the original masked array instead of
an ndarray.

Closes gh-4026.
Merge pull request #4039 from abalkin/issue-4026

BUG: ma.compressed() function returns masked array
ENH: check if type is basic python type before checking for __numpy_ufunc__

improves performance of scalar conversions (x + .5) by ~30%.
Merge pull request #4046 from chatcannon/speling

Spelling & notation corrections
MAINT: initialize strides for ufunc.at

avoids uninitialized use errors from valgrind, value of strides is
irrelevant as count is always 1.
BUG: fix uninitialized use in _strided_to_strided_string_to_datetime

dt == NPY_DATETIME_NAT is used as error condition, so initialize it to
something else.
Merge pull request #4038 from seberg/issue-4036

DEP: non-integer scalar python sequence repeat
Merge pull request #4042 from chatcannon/f2pydoc

A few F2PY documentation improvements
Merge pull request #4044 from juliantaylor/scalar-conv-enh

ENH: check if type is basic python type before checking for __numpy_ufunc__
Merge pull request #4051 from juliantaylor/valgrind

fix two uninitialized uses reported with valgrind