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.
`middleware.Middleware` is an interface, right? An interface value is not `nil` even if the underlying type's value is `nil` so `fallback == nil` will unlikely ever trigger.