[X86] Add ISD::VECREDUCE_MUL lowering instead of matching in DAG (#207593)
Add X86 support for ISD::VECREDUCE_MUL and remove it from
combineArithReduction - most of the change is refactoring the custom
promotion of vXi8 -> vXi16.
Another part of #194621