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
Can we get rid of this option_value method? I know you didn't write it, but I hate it! It makes every method depends on an external hash of options passing at construction time.

I'd rather modify the constructor to do:

`
@time_window = options.fetch(:time_window) { DEFAULTS[:time_window }
`

so it becomes part of the internal data structure of the class and it makes the code much clearer.