Implement cache mechanics with archive support

Hello all. I have implemented following features:

* Optional cache model that can proxy all github calls
* Optional archive support
* Optional way for cache invalidation by cron job

@tadatuta @tavriaforever 
isn't it better to put initial object with empty `issues` and `comments` fields here and remove `onError`?