ENH: Add overlay_dx_score metric for regression evaluation

### Describe the workflow you want to enable

## Current Problem

When evaluating regression models, especially for time series forecasting, existing metrics (MAE, RMSE, R²) don't capture how well predictions align visually with actual values across different tolerance levels.

## Desired Workflow
```python
from sklearn.metrics import overlay_dx_score
from sklearn.model_selection import cross_val_score

# Simple evaluation
score = overlay_dx_score(y_true, y_pred)

# Cross-validation with custom scorer
from sklearn.metrics import make_scorer
scorer = make_scorer(overlay_dx_score)
scores = cross_val_score(model, X, y, scoring=scorer, cv=5)

# GridSearchCV
from sklearn.model_selection import GridSearchCV
grid = GridSearchCV(model, param_grid, scoring=scorer)
grid.fit(X, y)
```

## Use Cases

1. Time series forecasting evaluation where visual alignment matters
2. Scenarios where outlier sensitivity of MSE/RMSE is problematic
3. Understanding prediction quality at multiple tolerance levels
4. Model selection when alignment is more important than absolute error


## Proposed Implementation

Add `overlay_dx_score()` function to `sklearn.metrics`.

### Function Signature
```python
def overlay_dx_score(y_true, y_pred, *,
                     sample_weight=None,
                     multioutput='uniform_average',
                     max_percentage=100.0,
                     min_percentage=0.1,
                     step=0.1):
    """
    Overlay DX metric for evaluating regression predictions.
    
    Measures alignment by computing area under curve showing percentage 
    of predictions within tolerance intervals of varying sizes.
    
    Returns float between 0 and 1, higher is better.
    """
```

### How It Works

1. Define tolerance intervals as percentages of the data range
2. For each tolerance level, compute percentage of predictions within tolerance
3. Calculate area under the resulting curve
4. Normalize by maximum possible area

### Mathematical Formula
```
overlay_dx = A / A_max
```

where:
- A = area under the overlay percentage curve
- A_max = maximum possible area (max_percentage × 100)

### Key Features

- Supports `sample_weight` (sklearn standard)
- Supports `multioutput` regression
- Less sensitive to outliers than MSE/RMSE
- Provides interpretable score (0 to 1 range)

### Implementation Details

- Pure NumPy implementation, no external dependencies
- Vectorized operations for efficiency
- Follows sklearn API conventions
- Complete numpydoc documentation
- 95%+ test coverage ready

## References

- Repository: https://github.com/Smile-SA/overlay_dx
- Currently used internally for time series forecasting evaluation
- Compatible implementation exists: works with cross_val_score, GridSearchCV, Pipeline

### Describe alternatives you've considered, if relevant

_No response_

### Additional context

_No response_

COMMENT:
@saumilyagupta please there not much point starting to work on something before there is an agreement between maintainers that this is something we want to do.

@saumilyagupta can I ask how you discovered this issue, I feel like like lately a lot of people are jumping on recent issues (in most cases using AI) with seemingly now much idea about how open-source contribution generally works. Please have a look at [GitHub open-source guide](https://opensource.guide/how-to-contribute/), our [contributing doc](https://scikit-learn.org/dev/developers/contributing.html) and in particular the section [Issues for new contributors](https://scikit-learn.org/dev/developers/contributing.html#new-contributors).

Labels: New Feature, Needs Info