BUG: INCREF before DECREF when copying object arrays.

Only the change in dtype_transfer actually seems to be
related to the simple np.copyto(a, a) bug, when a is a scalar
object array.
It seemed however safer to me, to generally turn around the
logic, even if it may not be necessary and in one place
requires an extra temporary variable.

Closes gh-3787
DOC: adding 'Returns' section to `empty` function

This matches the format of related functions like `empty_like` and `zeros`.
BUG: ufunc_at needs_api requires init to 0

as reported by valgrind...
Merge pull request #3795 from seberg/init_ufunc_at_needapi

BUG: ufunc_at needs_api requires init to 0
Merge pull request #3794 from perimosocordiae/patch-1

DOC: adding 'Returns' section to `empty` function docstring
Merge pull request #3788 from seberg/object-copy-refs

BUG: INCREF before DECREF when copying object arrays.