Add case where 'axis' is a numpy scalar array

If the 'axis' variable is a numpy scalar array (like numpy.array(1)), these conditional branches will fail as it tries to build a set over the non-iterable array. I've added another branch to handle this case.
identify and fix more reductions that don't support scalar array axes
add tests
Merge pull request #1539 from jlowin/patch-1

Add case where 'axis' is a numpy scalar array