Windows: Refactor and consolidate afsredir invalidation
Invalidation requests were being processed in an inconsistent
manner because different rules were being applied to volume root
directories and other objects and whether or not the invalidation
was a whole volume invalidation or not.
This patchset consolidates all invalidation logic for an object
in the new AFSInvalidateObject function. AFSInvalidateObject
is then called from AFSInvalidateCache and AFSInvalidateVolume
as necessary.
AFSInvalidateVolume executes AFSInvalidateObject on all objects
in the volume object tree. As a result, whole volume invalidations
whether triggered by the file server or "fs flushvolume" now work.