WIP: numba arithmetic

Also, beware, a `Broadcast` can have several children, not just one or two.  Handling thiis is hard in MD.  Suggest something like the following

```Python
def compute_broadcast_numpy(expr, *data, **kwargs):
    ....

for i in range(10):
    compute_up.register((Broadcast,) + (np.ndarray,) * i)(compute_broadcast_numpy)
```