use the allowed upgrades list when validating version upgrades
Beginning with v24.2, some releases are innovation releases which can be
skipped during upgrading. The ListClusterMajorVersions API returns
information on allowed upgrade paths, which we now use to validate
whether an upgrade is possible in `apply`. Additional validation
(cluster state, etc) is performed server-side within the API, so this
validation is mostly to catch the most common type of error with a
faster, more helpful error message, and not to be exhaustive.