Introduce cache system with Redis #2340

The cache record all dependencies when computing and store both result and
dependencies in Redis. For now the cache is never invalidated, so cannot
be used in production, because results will never change.

Unit tests have cache disabled.
If only one part had rule, it crashed
Implement cache dependencies #2340

From now on cached results are deleted when model changes. So results
should always be correct
Use router configuration to find CLI usages
Add CLI commands to manage cache #2340
Fix unit tests after bad rebase
Cache regression by individual filters instead of groups #2340

Caching by individual filters, allow us to re-use cached filters
in different selection of filters. And thus making the cache much more
efficient.
Cache regression by individual questionnaire instead of groups #2340
Include world in test data #2340
Use separate process for each geoname cache #2340
Local configuration always overwrite global one #2340
Clear cache on ly for our namespace #2340
Drop country model #2340

Drop country model and merge ISO3 into geoname. This simplify
codebase and prepare to pre-compute population for regions and world