The thing is that the recommended usage for this functionality is actually going to be

```
 ax = fig.add_subplot(1, 1, 1, projection=wcs.WCS('image.fits'))
```

so it's actually the WCS class that's passed to matplotlib, and this calls ``WCS._as_mpl_axes`` which has to return an Axes class, so doesn't it make sense for the axes class to live alongside the WCS class? The point is that I think the ``WCSAxes`` class may even be 'private' and never accessible to the user, which is why I'm not so keen on creating a new sub-package for it.

Since it'll be a private class anyway, then it doesn't matter where it lives so we can just put it alongside ``WCS``.