TST: Backport test_item_selection.py and change as necessary

test_item_selection.py was new in 1.7 but also includes tests
that 1.7 does not support. This backports and modifies it accordingly
BUG: Incref items in np.take on error as they are decrefed later

When take fails during copying due to out of bound indices, then the already
copied items will be decref'd on array destruction. To avoid that, as well
as possible overlapping or already initialized object arrays, decref and
incref during the copy operation itself. Note that all basic types but
object use their own fasttake, so this does not change anything for them.
TST: Add test for np.take refcounting

Also make the testcase for take a class. Was small merge conflict as the
tests cannot check 0-d in version 1.7 but the file had some larger change.

Conflicts:
	numpy/core/tests/test_item_selection.py
BUG: non-empty takes on empty axes failed for clip/wrap logic

These did no checking for this special case. And thus, wrap would go
into infinite loops trying to adjust the index, and clip would (probably)
segfault. This raises IndexError explicitely beforehand.