Analytic functions with blackbody

See #3077 
`in_x` not being a `Quantity` does not guarantee that it does not have a unit already. E.g., with this a column with Angstrom units will become a `Quantity` with units of A**2. Instead, I would test on the object not having a unit and then letting the `Quantity` initializer take care, using again the equivalency framework (this makes things slightly slower for, say, a `Column` with frequency units, but I think that's OK since this is not the common path):
```
if not isinstance(in_x, u.Quantity):
    with u.add_enabled_equivalencies(u.spectral()):
        in_x = u.Quantity(in_x, u.AA)
```