match: avoid accessing match._pathrestricted from subdirmatcher
Accessing only the public API wherever possible helps us refactor
matchers later.
match: override visitdir() the usual way in subdirmatcher
Just override the function instead of replacing it on each instance.
match: make _fileroots a @propertycache and rename it to _fileset
The files in the set are not necesserily roots of anything. Making it
a @propertycache will help towards extracting a base class for
matchers.
fsmonitor: use modern match API
It seems like fsmonitor/__init__.py was based on a pretty old version
of dirstate.py. Let's copy over the changes from the following two
commits:
55c449345b10 (match: add isexact() method to hide internals, 2014-10-29)
3c346969c321 (dirstate: avoid match.files() in walk(), 2015-05-19)