Refactor I/O

@keflavich @ChrisBeaumont - I've attempted to tidy up the I/O stuff a bit. The changes are:

* read is now again a class method of ``SpectralCube`` and ``StokesSpectralCube``. This makes it easier to control whether the stokes parameters are read in or not. If you do ``SpectralCube.read`` they are dropped, and if you do ``StokesSpectralCube.read`` they are kept. I find it easier this way, as in most cases users only have to import one thing, and it's also consistent with ``Table`` and ``NDData``.

* The FITS reader now also understands HDU objects and HDUList

@ChrisBeaumont - I'm seeing one test failure related to the moment stuff locally. Do you see any failures with this branch?