Feature Request: Overload arithmetic operations & ufuncs

Possibly lazily?

It makes sense to do things like `cube*5` and perhaps evaluate them lazily.  Right now, you could do

```
data = cube.filled_data[:] + 5
```

or 

```
cube._data += 5
```

but there's no obvious way to do arithmetic while staying the context of `SpectralCube`, unless I'm being daft which is exceedingly likely.