"&" doesn't raise ValueError according to nose, but it does in the shell
Strange bug, probably has to do with not propagating errors in Cython

``` python
import numpy as np
import numbers

def randbool(p=0.5, size=None):
    if size is None:
        size = ()

    if isinstance(size, numbers.Integral):
        size = (size,)

    return np.random.rand(*size) <= p
```

```
In [1]: x = randbool(size=(10,5))

In [2]: s = Series([False]*5)

In [3]: andit = lambda x, s: x & s

In [4]: andit(x, s)
ValueError: operands could not be broadcast together with shapes (10) (10,5)

In [5]: from nose.tools import assert_raises

In [6]: assert_raises(ValueError, andit, x, s)
AssertionError: ValueError not raised
```
