Flux point method

Implements #50 .
Do this instead:
```
spectral_model = ExponentialCutoffPowerLaw1D(10, 5, 1, 0.5)
y = spectral_model(x)
```
and then later pass the `spectral_model` callable directly instead of creating a `function` that wraps it.