Allow PVSlicer to load a SpectralCube directly

The PVSlicer currently only works from a filename and doesn't take advantage of any of `spectral_cube`'s capabilities, including masking.  This PR allows it to use the cube directly.

It mostly works, but I have been getting bugs that I *think* are unrelated in gui testing