Move shouldShow() back onto ProjectManager, and pass it into FileSystem as
a client-specific filter function. Share the same filter for both watch()
and Directory.getContents() - API now reconciled so it always takes a path
(string), not an entry obj.

Note that FileSystem._indexFilter() has a little more overhead, because it
has to find the watch-root. I timed this and it only adds a cumulative total
of 25ms while loading & watch()ing the brackets repo, so it seems manageable.

This does NOT fix the pre-existing issues around items that may be filtered
out of watching and getContents() but still added to the index anyway via
explicit getFile/getDirectoryForPath() calls.