Use LRUDict from darts.lib.utils.lru to limit number of concurrently open files.

For now it uses half the soft limit of open files as the maximum size of the LRU cache.
It should be made smarter and more configurable.