Introduce circuit breaker middleware

Circuit breaker watches the error condtion to match, after what it activates the fallback scenario, e.g. returns the response code.
As with the function in `metrics` I think it would be clearer to call this something like `setDefaults`. In this case I would also move the check for negative durations out of this function and probably into `New`.