Array.__iter__ yields either scalars or arrays

Previously this yielded DataDescriptors.  Now it yields either scalars or arrays of one fewer dimension.

```Python
>>> list(array([1, 2, 3]))
[1, 2, 3]

>>> list(array([[1, 2, 3],
                [4, 5, 6],
                [7, 8, 9]]))

[array([1, 2, 3], dshape='3 * int32'),
 array([4, 5, 6], dshape='3 * int32'),
 array([7, 8, 9], dshape='3 * int32')]
```

This matches the API established by numpy