Example astropy.datasets module

As discussed in #3030 it would be nice to have a way to quickly access example datasets in the docs. In WCSAxes it allows us to write things like:

```
from wcsaxes import datasets, WCS
hdu = datasets.fetch_msx_hdu()
wcs = WCS(hdu.header)
```

that the user can re-run without downloading the dataset. This can also be useful for tests.

At the moment, the current PR makes it possible to do:

```
In [9]: from astropy.datasets import list_available_datasets, fetch_hdu

In [10]: list_available_datasets()
Out[10]: 
['allsky/allsky_rosat.fits',
 'galactic_center/gc_2mass_k.fits',
 'galactic_center/gc_bolocam_gps.fits',
 'galactic_center/gc_msx_e.fits',
 'l1448/l1448_13co.fits']

In [11]: fetch_hdu('allsky/allsky_rosat.fits')
Out[11]: <astropy.io.fits.hdu.image.PrimaryHDU at 0x110a25390>
```

This saves a little typing compared to simply giving the full URL for data.astropy.org.

This is just an example implementation so we can start discussing things. Other packages, such as WCSAxes, scikit-image, etc. actually specifically hard-code the few curated example datasets they want to include in their datasets module. I actually have a slight preference for this. That is, we would carefully decide which datasets to make available via this module to keep it simple. These would be datasets used in the docs, so that the examples look simple like the examples I showed above (so ``fetch_msx_gc_hdu`` insetad of ``fetch_hdu('galactic_center/gc_msx_e.fits')``. If tests or internal parts of the code need datasets, they could just use the URL directly.

Anyway, just some thoughts for now - let me know what you think!

cc @eteq @larrybradley @cdeil


FWIW this may end up superfluous--`fits.open` can already accept URLs.  The only problem right now is that it doesn't integrate with Astropy's download cache (obviously creating a need for this *right now*).  But that is going to be fixed, and I believe @rastogitanuj is working on it.