Returns true when every whitespace-separated term in query appears as a
case-insensitive substring within candidate. Both query and candidate
are expected to be pre-lowered (via normalize_query and construction-time
lowering respectively), so this function performs zero allocations.
Returns a score for the fuzzy match between query and candidate using nucleo-matcher.
Returns None if no match is found, Some(score) if a match exists.