Implement a FrequencyBreaker

A FrequencyBreaker is a ThresholdBreaker where the threshold must be met within a certain period of time in order to trip the breaker. For example, 5 failures in 1 minute. If the 5th failure comes in at 1:01 after the first failure, the breaker will not trip and the timer will reset.

Some code duplication can probably be removed by reimplementing the ThresholdBreaker as a FrequencyBreaker with a 0 duration, rather than implementing a FrequencyBreaker as  ThresholdBreaker with a time limit (as the first commit has it).