Fix rate calculation

- Fix the bug: rate reset on every success request
- add some tests to check high level behaviour of circuit_breaker
- make rate information public through public method
I'd rather rename this param to @time_now and have a default value of `{ Time }` instead of { Proc.new {Time.now} }, and then later call @time_class.now instead of @time_now.call.