Sequence assignment doesn't raise exception on shape mismatch

To reproduce:
```python
>>> import numpy
>>> a = numpy.array([1,2,3])
>>> a[:] = [9,9]
>>> 'hello!'
ValueError: cannot copy sequence with size 2 to array axis with dimension 3
```
Note that the exception is not raised from the faulty assignment, but lingers and strikes completely unrelated statement.

This, of course, is the sign that the exception was set, but an error indicator was not returned. This is the result of this change 2b05fadefd18f2206b11a548fc44d783898ec366, which is frankly shocking. I suggest the change is reverted and some tests are added.