Adaters support

This is a major rewrite for supporting different storage strategies.

At this moment it is supporting Memcached and Redis strategies, the readme was updated with the new usage.
Except by the class name and the initializer parameter, the API still the same, which will reduce the upgrading time for the app.