Inline SelectorQuery::executeForTraverseRoots into findTraverseRootsAndExecute.
This function is just a glorified if statement over the enum value we pass
into it. Inline the two loops into the call sites. We can also remove the
check against SelectorQueryTrait::shouldOnlyMatchFirstElement inside the loops
since the outer check ensures it's always false.
This lets us remove the MatchTraverseRootState enum. It does make the
findTraverseRootsAndExecute function bigger, but it removes a bunch of
checks in the process. Future patches will simplify further and hopefully
shrink the function.