* The `Provided::<Concept>` classes were anemic. It's fine for the model to know how to call a provider that provides it directly.
It's also better to have the model instantiate domain objects.
And, finally, it makes more sense for the class making the HTTP requests to be aware of retries.
* The base implementations for provider methods were moved from `Provider::Base` to `Provider::Null`.
They were part of the base so that every provider responds to every providable method, which is unnecessary.
Let's be less defensive about it. Things will likely break with NoMethodError anyway in the edge case this was trying to guard against.
* Previously, when HTTP providers like Synth failed, they would raise. Now they return an inspectable response object of the same shape as when requests are successful, but it returns false for `#success?`. This is handy for debugging when you'll likely want to inspect the raw response. We can still raise on the Maybe side if needed. But that's a Maybe concern not a provider concern.
* `ExchangeRate#find_rate` doesn't raise anymore in preparation for opting into fetching — which should only happen on writes.