First go at spectral WCS

So I have used `astropy.modeling` to have a first go at making a spectral wcs which for now existed in a slightly broken form. It includes an interpolation method that takes into account the precise description of the WCS to interpolate from one to the other. It's still easy to use and most of the difficult handling is hidden from the user:

```python
    >>> flux = np.random.random(1000)
    >>> wave = np.sort(np.random.random(1000))
    >>> spec1d = Spectrum1D.from_array(wave, flux)
    >>> spec1d = Spectrum1D.interpolate(Spectrum1DLinearWCS(6000, dispersion_delta=1, pixel_index=np.arange(1000)))
    >>> #Now it can be written to a fits file as it is linear encoded which is representable in FITS headers.
```

This is more of a preview version and the next step is to incorporate units tighter into this as well as making the wcs write to fits (and have a little function that reads from fits). 

@keflavich and @nden - your thoughts.