BUG: Raise error for non supported structured array assignment

This pull request shows one way how to resolve #3126 and #3561: It just raises an error for non supported / erroneous operations.

```python
import numpy as np
print np.__version__

x = np.empty(1, dtype=[('field', 'i4', 10)])
ones = np.ones(10, dtype='i4')

# OK
x[:]['field'] = 1 * ones     # array_assign_subscript
print x
x['field'] = 2 * ones        # array_assign_subscript
print x
x[0]['field'][:] = 3 * ones  # array_assign_slice
print x

# FAIL (only first item is assigned)
x[0]['field'] = 4 * ones     # voidtype_ass_subscript 
print x
```

However, it might be much nicer to actually assign the call correctly (I did not manage to do this, therefore I just raise an error). The above code lines show 4 operations how to assign the same field with their C function call as comment. Note that only the call to `voidtype_ass_subscript` fails.

`python -c "import numpy; numpy.test()" ` run OK.