Test compute numpy

This is almost ready for merging. I have one problem though, with the function on line 49:

```
@dispatch(BinOp, base, np.ndarray)
def compute_up(t, lhs, rhs, **kwargs):
    return t.op(lhs, rhs)
```

Had a lot of trouble figuring out how to call this function, figuring out what it wanted for inputs. Any feedback on this would be appreciated. 
These names could be improved.  They seem more about testing length than about testing `Projection`.  Isn't the length of projections and fields already implicitly tested when we test Fields and Projections in isolation?

For example, I assume that at some point we test that `(compute(t.amount, x) == x['amount']).all()`.  This would implicitly test `len`, no?  Why did we need to add these extra tests?