BUG: Fixed issue 3504, and added tests for complex support
ENH: hint that nelem == 1 branch is more likely

improves performance for simple takes by 10%, chunked takes spend more
time copying so the less dense code matters less.