Support for period ranges

Supports range based periods, for the cases when periods needs to be manually defined such as start/end of the month or any particularly different metric.
```
period_based_on_proc = proc {|req| (Time.now.gmtime.beginning_of_month..Time.now.gmtime.end_of_month) }
Rack::Attack.throttle('req/ip', :limit => 100, :period => period_based_on_proc) do |req|
  req.ip
end
```