select
Pick the best canonical name from candidates. Inputs are normalized via NormalizedNameCandidateSearcher.normalizeName before scoring so titles ("Dr.", "Mr.") and suffixes ("Jr.") don't artificially boost. Blank, null, and effectively-identical candidates are deduped.
Return
the best canonical form, or null when every candidate is null/blank after cleaning. Callers should fall back to whatever name they already had on the entity in that case.
Convenience varargs overload — same semantics as select.