Fix ndindex issue

Call to ndindex() with no arguments results in a ValueError exception, whereas before commit ca27396b, a call with no arguments was allowed.
Issue is due to unneeded check for shape tuple size.
Add test for optional size argument for ndindex
Add test for __array_interface__
Fix the test for numpy.ndindex()
Fix ndindex for 0-d arrays.
Fix the 0-d patch so it doesn't change the non 0-d iterator
Use super instead of direct access to inheritance.
Fix the test for numpy.ndindex()
Fix ndindex for 0-d arrays.
Add tests for tuple arguments to ndindex
Fix 0-d ndincr to have correct return value.
Merge pull request #2897 from ContinuumIO/ndindex_fix

Fix for #2895 ndindex failing