WIP: When removing cache entries, remove children too.

If a directory is deleted or renamed, everything inside it has to
be invalidated in the cache too. The simplest way to do this is
to remove by string prefix match. This will remove too many entries
if there are filenames that match the prefix but aren't actually
children. This is ok as the cache will be repopulated as needed
and operations that invalidate the cache are infrequent.