add read/write methods to cache
delegate Redis custom logic to StoreProxy

this removes ugly `if redis blah` code from cache
Fail2Ban helper

based on gist from @ktheory https://gist.github.com/ktheory/5723534

Modified slightly to use fail2ban `filter` terminology to simplify
Rack::Attack initializer configuration (only one block is requred for
this approach instead of 2)
reorder logic to not repeatedly extend ban after more failed requests
spec for Fail2Ban
added README docs for fail2ban
collapse fail2ban name/discriminator into one argument
updated and condensed fail2ban docs
Cleanup whitespace
Clarify Fail2Ban readme
version 2.2.0
Update changelog
fix typo
Format example code as ruby
Use correct HTTP status codes for blackist and throttle
Fix spec expectations
Merge pull request #20 from rallysf/correct-http-codes

Use correct HTTP status codes for blackist and throttle
Explain why Rack::Attack returns 503 instead of 429 in README
Fix response status comment for README
Fix typo 401 -> 429