Npred cube2

Implementation which I intend to use to produce significance images (currently this is still running on my machine).

The unit tests will need much improvement soon as I just implemented some quick ones. Looking at the outputs with ds9 using the FermiGalacticCenter files seemed reasonable, but obviously not rigorous yet.

Don't know if you were aiming to merge this asap, so did a pull request just in case.
There's nothing specific about this function why it would only work for `npred` cubes.
We'll also apply it to real counts cubes or to estimated background cubes (not necessarily the `npred` from a flux model ... could be from the data).

Actually, why didn't we make this a class method, i.e.
```python
psf = EnergyDependentTablePSF(...)
cube = Spectralcube(...)
cube.convolve(psf)
```
(if there is a reason, please change at least the function name `convolve_npred_cube` to `convolve_cube` and the first parameter name from `npred_cube` to `cube`.)