This series introduces a filecache decorator that can be used on localrepo
functions, replacing propertycache.
The general idea is being able to associate a file with a property, and watch
that file stat info for modifications when we decide it's important for it to
be up-to-date. Once it changes, we recreate the object.
As a consequence, localrepo.invalidate() will become much less expensive in the
case where nothing changed on-disk (branchcache being the exception here, I
haven't dealt with that yet).
The end goal of this series is to allow the command server's cached repository
to stay in-sync with changes happening to the repository on the outside.