Enhance calibration plots

### Describe the workflow you want to enable

I would like to enhance calibration plots by adding these new aspects:
1. Plot bins as vertical lines in the background.
2. Equal aspect on both axis to have a square figure and enable easier visual comparisons.
3. Changing xlabel from "Mean predicted probability" to "Mean confidence scores" or "Confidence scores" or similar, to avoid confusion between scores output by classifiers and true posterior probabilities.
4. Integrate a visualization of the density to see where the mass is on the calibration curve. This is important as a calibration curve can appear very bad in some part whereas it can be due to a low number of samples in this part, and actually have a good Expected Calibration Error. Several choices are possible as described in the proposed solution section.
5. Edit: add support for multiclass calibration plot by either looking at the class-wise calibration (considering one of the classes as the positive one) or the top-label problem (binarizing the multiclass problem with the prediction taken as the argmax of the confidences, a positive label iff the prediction is right and an associated confidence given by the maximum of the confidences). These are 2 of the 3 definitions of calibration in the multiclass setting.

### Describe your proposed solution

To address the previous points, I propose to:
1. Update `CalibrationDisplay`.
2. Idem
3. Idem
4. Several choices are possible here. Either adding an histogram on each edge as in the figure below. Or adding a single histogram on the confidence scores axis (either on the edge or integrated in the background of the calibration plot) since the density on the "fraction of positive" axis is less informative as the one on the confidence scores axis. This last option might be better. Also, this feature might be restricted to a single calibration curve only as it might become illegible with several classifiers.
5. Edit: This could be done by adapting the `_get_response` to allow y_pred.shape[1] > 2 and either choosing one of the K class as the positive one, or the top-label one.

Should this change be approved, I would be willing to work on it.

Example with histograms on the edges:
<img src="https://user-images.githubusercontent.com/33580936/174766358-56fc2afa-5452-4318-b0cb-18caf1b2a004.jpg" alt="drawing" width="400"/>

### Describe alternatives you've considered, if relevant

_No response_

### Additional context

_No response_

COMMENT:
What would you propose to display the calibration curves of two different models on the same plot with non-uniform (quantile-based) binning? I believe the current API allows this and I don't think it would be compatible with your suggestion.

Note that the current examples do compare several models on the same figure:

- https://scikit-learn.org/stable/auto_examples/calibration/plot_compare_calibration.html
- https://scikit-learn.org/stable/auto_examples/calibration/plot_calibration_curve.html

In those examples, the default binning uniform strategy is used, however the points for different models are not vertically aligned. I believe this the min-max `y_proba` range is not the same across models. I think we should add an option to force the range to `[0.0-1.0]` instead of using `[np.min(y_pred) - np.max(y_pred)]` to avoid this artifact. It should probably be used by default when strategy is uniform for classifiers. Not sure what to do if we generalize this reliability diagram to regressors in the future though.

About the label of the x axis, may I suggest:

- "Mean predicted (for class 1) per bin (uniform)"
- or "Mean predicted (for class 1) per bin (uniform)" depending on which kind of binning strategy we use.

I think we should be explicit on which class considered the positive class and which binning strategy is used.

Also I think that there should be "prediction" or "predicted" (or estimated) in the x label.

I am not sure we should use "score" or "scores" because this word has very different meanings in different context. In particular in the scikit-learn API we have the notion of "scorers" and "scoring" which is quite not the same so I am afraid of the possible confusion here. But maybe "Predicted confidence score for class 1 (uniform binning)" would work.

Labels: New Feature, module:calibration