Initial implementation of caches + unit tests

Provide 3 cache engines, FileTreeEngine, RedisTreeEngine and
FallbackEngine.
Unit tests working for still require Redis running for the
RedisTreeEngineTest and the FallbackEngineTest since is uses
RedisTreeEngine.