Initial addition of hash caching in the roots filserver plugin

This will cache the hash/mtime of files on disk in the cache dir so we don't have to re-calculate the hashes on every request.
This includes a function _reap_cache which will reap all the hash caches that the real files no longer exist