when initialize a vectorize object, always set self._ufunc to None first. fix #3285
Merge pull request #4480 from juliantaylor/error-returns

BUG: add missing gufunc failure return values and missing malloc fail check
Merge pull request #4475 from juliantaylor/gil-release

Gil release for nonzero
remove assert in _get_ufunc_and_otypes, add a test in test_function_base.py
BUG: Delay npyiter size check when size may change

When a multi index is tracked and RemoveAxis can be called, the
size of the iterator may still change. This was causing failures
for example for the SVD, because the gufunc machinery requires
a temporarily larger iterator for output allocation.

Thanks to Jaime (jaime.frio@gmail.com) for noting that this is
plausible since the size check can be delayed pretty ok up
until GetIterNext (or similar functions).

Closes gh-4442
Merge pull request #4479 from leomao/master

BUG: when initialize a vectorize object, always set self._ufunc to None first. fix #3285.
Merge pull request #4466 from seberg/delay-size-nditer-size-check

BUG: Delay npyiter size check when size may change
ENH: add extended axis and keepdims support to median and percentile
MAINT: revert back to separate median implementation

Merging median and percentile make would break astropy and quantities as
we don't call mean anymore. These packages rely on overriding mean to
add their own median behavior.