_checkShape needs to consider also the atom shape when checking if broadcasting is necessary (closes #209)

We don't need to consider `nparr.dtype.shape` because numpy array's shape swallows the dtype shape, e.g.:

```
In [22]: dtype = np.dtype('(4,)i')

In [23]: dtype.shape
Out[23]: (4,)

In [24]: nparr = np.zeros((2,3), dtype)

In [25]: nparr.shape 
Out[25]: (2, 3, 4)

In [26]: nparr.shape + nparr.dtype.shape
Out[26]: (2, 3, 4)

In [27]: nparr.dtype
Out[27]: dtype('int32')
```

It includes a test case along the lines of what found in #209.