Add file_lists cache support for gitfs

This pull request builds on Tom's work in the roots backend, adding a file_lists cache for gitfs as well as making some optimizations to the roots backend's file_lists cache.

Additionally, the code that reads from (and writes to) the cache has been broken out to ``salt/fileserver/__init__.py`` so that it can be used in any backend for which the file_lists cache is implemented.