Fixing models

Based on https://github.com/astropy/specutils/pull/92. Making models compatible with the latest astropy model framework
Fixes: https://github.com/astropy/specutils/issues/93 partially. 
IRAF specific models will be fixed in https://github.com/astropy/specutils/pull/86.
@wkerzendorf @nhmc How does this look?
This is a perfect example of why you *shouldn't* override `__call__`, but instead override `prepare_inputs` (which was meant to be overrideable.  In this case you have a special case where you want to append the `self.unit` argument to the set of inputs to `evaluate`.  All of this could then be replaced by:

```
def prepare_inputs(*inputs, **kwargs):
    inputs, format_info = super(Spectrum1DPolynomialWCS, self).prepare_inputs(*inputs, **kwargs)
    inputs = inputs + (self.units,)
    return inputs, format_info
```

I will add though that the current design did not intend additional arguments to be passed to the `evaluate` function that aren't independent variables or parameters.  THAT SAID, I feel like what you're doing here *ought* to be able to work so if my suggestion here doesn't do the trick let me know.