[ADT] Simplify TypesAreDistinct with std::conjunction (NFC) (#157228)
This patch uses std::conjunction to succinctly compute "AND" of:
- std::negation<is_one_of<T, Us...>>
- TypesAreDistinct<Us...> // recursive step
This way, we can eliminate the entire "detail" block.