This change teaches `Tree::diff()` to filter by a matcher. It only filters the result so far; it does not restrict the tree walk to what `Matcher::visit()` says is necessary yet. It also doesn't teach the CLI to create a matcher and pass it in.