Refactoring to add a backend abstraction (+ sliding ratelimit )

Two backends are now available:
 - cache: using the standard django cache framework
 - redis: using redis-py to achieve a sliding ratelimit behavior
(fixing issue #11 btw)