Add a `to_ds9` feature

Another in the line of viewers I like to use.  This one necessarily creates a copy in memory.

I think it will make sense to abstract this out as an inheritable ABC:

```
class Ds9Viewable(ABC):
    @abs.abstractmethod
    def hdu(self):
          # the only requirement is that there is a valid hdu method
          pass

    def to_ds9(...):
         # see the PR'd code for this function
```

Similar things could be done with `to_glue`, but maybe not `to_yt` (or even if we could, it wouldn't make sense for yt)