This patch introduces a new class, MinMaxVFCandidates, that holds
the possible maximum vectorization factors that have been computed. The
algorithm guarantees there is always at least one maximum VF (in worst
case ElementCount::getFixed(1) for scalarization), but may have both a
fixed MaxVF and a scalable MaxVF.
This patch is intended to be a non-functional change for now,
because LoopVectorizationPlanner::plan doesn't actually use the
scalable MaxVF yet to automatically pick a scalable VPlan
(at least not beyond the UserVF if that's given).
This patch is a preparatory patch with the ultimate goal of making
computeMaxVF() return both a max fixed VF and a max scalable VF,
so that selectVectorizationFactor() can pick the most cost-effective
vectorization factor.