Add functions to interact with file list cache
Add file_lists cache for gitfs
Update file_lists cache support for roots backend

This builds on the work Tom started, using common functions for reading
and writing the cache, and also switching the cache location.
Additionally, this commit also optimizes the file list cache by creating
separate cache files for each environment. The desired environment is in
the load already, so there is no need to walk the other environments to
get the desired file_list data.
Fix pylint violation
Merge pull request #9747 from terminalmage/file_list_cache

Add file_lists cache support for gitfs