Implement Huck::Error and use it instead of raising RuntimeError. This allows receivers to catch config errors etc, and bail on those errors rather than retrying every 5s since that makes no sense.