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.
BUG: fix hashing of long integers under python3

python3 long_hash is more complex than int_hash so instead of copying
into numpy call it via the Python capi.
Same for long long for wich the numpy hash function is not correct with
python 2.7 on i386.
Will be slower but doesn't need adapting each timy python changes.
closes #3793