Lucene 9.8 updates the vector dimension limit overridability. Moving it to the codec. 

We should switch our override to do this correctly now, instead of returning a `FieldType` overriding the value.

For now, this commit would belong in the `lucene_snapshot` branch.
server/src/main/java/org/elasticsearch/index/mapper/vectors/DenseVectorFieldMapper.java
case FLOAT -> (1 + similarity) / 2f;
                };
            }
            @Override
            void floatPreprocessing(float[] vector, float squareSum) {
                if (squareSum == 0) {
                    throw new IllegalArgumentException("Cannot normalize a zero-length vector");
                }
                
                if (Math.abs(squareSum - 1.0f) < EPS) {
                    return;
                }
                float length = (float) Math.sqrt(squareSum);
                for (int i = 0; i < vector.length; i++) {
                    vector[i] /= length;
                }
            }
        };
        public final VectorSimilarityFunction function;
        VectorSimilarity(VectorSimilarityFunction function) {
            this.function = function;
        }
        @Override
        public final String toString() {
            return name().toLowerCase(Locale.ROOT);
        }
        abstract float score(float similarity, ElementType elementType, int dim);
        void floatPreprocessing(float[] vector, float squareSum) {}
    }
    private abstract static class IndexOptions implements ToXContent {