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.
It looks to me like OnTripped is currently fired for the Recovering -> Tripped transition. Whichever behavior you choose, it would be nice to document it here.