Matcher cache

When LIM_MATCHER_CACHE option is set, matcher use intermediate directory to store and load indices. This dir SHOULD be located at local file system (using things like GlusterFS or NFS might cause bugs). Every time matcher reloads its indices it tries to clean up cache directory by removing old generation of list indices. Cache system has locking mechanism. In case of multiple instances of matchers running on the same host and sharing the same directory for cache, locking will prevent downloading of the same indices multiple times. It means, index storage will be hit exactly one time when data is being sent between matchers host and the storage.