Changing classification_report to also output the number of predictions along with the support.

### Describe the workflow you want to enable

The current [`classification_report`](https://github.com/scikit-learn/scikit-learn/blob/0eb23ff7b80eafbea9578568a5407ebe5072a11a/sklearn/metrics/_classification.py#L2405) returns a column for the support of each class, but I believe that in addition to that having a column that shows how many predictions the model made would also be beneficial.

Current:

```
>>> from sklearn.metrics import classification_report
>>> y_true = [0, 1, 2, 2, 2]
>>> y_pred = [0, 0, 2, 2, 1]
>>> target_names = ['class 0', 'class 1', 'class 2']
>>> print(classification_report(y_true, y_pred, target_names=target_names))
              precision    recall  f1-score   support

     class 0       0.50      1.00      0.67         1
     class 1       0.00      0.00      0.00         1
     class 2       1.00      0.67      0.80         3

    accuracy                           0.60         5
   macro avg       0.50      0.56      0.49         5
weighted avg       0.70      0.60      0.61         5
```

Proposed:

```
>>> from sklearn.metrics import classification_report
>>> y_true = [0, 1, 2, 2, 2]
>>> y_pred = [0, 0, 2, 2, 1]
>>> target_names = ['class 0', 'class 1', 'class 2']
>>> print(classification_report(y_true, y_pred, target_names=target_names, output_pred=True))
              precision    recall  f1-score   support   predicted

     class 0       0.50      1.00      0.67         1           2
     class 1       0.00      0.00      0.00         1           1
     class 2       1.00      0.67      0.80         3           2

    accuracy                           0.60         5           5
   macro avg       0.50      0.56      0.49         5           5
weighted avg       0.70      0.60      0.61         5           5
```

### Describe your proposed solution

Change the return statement of `precision_recall_fscore_support` to also return `pred_sum` along with `true_sum` (i.e., the support).
  * Changing the return statement of `precision_recall_fscore_support` also means that we have to add extra return values to the functions: `fbeta_score`, `precision_score`, and `recall_score`.

---

Add an argument called `output_pred: bool=False` to `classification_report` so as to give the user the option to output predictions.

Also make the following changes accordingly:

1. Change [line 2,555](https://github.com/scikit-learn/scikit-learn/blob/0eb23ff7b80eafbea9578568a5407ebe5072a11a/sklearn/metrics/_classification.py#L2555) to output the number of predictions.
2. If `output_pred == True`:
    * `headers = ['precision', 'recall', 'f1-score', 'support', 'predicted']`
    * `rows = zip(target_names, p, r, f1, s, pr)`
    * `avg = [avg_p, avg_r, avg_f1, np.sum(s), np.sum(pr)]`
3. Also change [line 2,594](https://github.com/scikit-learn/scikit-learn/blob/0eb23ff7b80eafbea9578568a5407ebe5072a11a/sklearn/metrics/_classification.py#L2594) to return an extra value from `precision_recall_fscore_support`.

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

_No response_

### Additional context

_No response_

COMMENT:
@glemaitre @thomasjpfan I proposed this idea because I felt that simply having the support value wasn't informative enough when I would analyze my models' results.

In cases where two classes may hold a higher semantic similarity than others (e.g., distinguishing between images of sweaters and hoodies vs. sweaters and cars) I'd often find myself wanting to see the model's actual predicted values on top of the already provided support. It would often help me gain insight on which classes I would have to implement extra measures on (e.g., regularization, weights, etc.) or collect more data for.

It seemed like a simple enough idea to implement since it's literally just adding a few lines of code and adding an additional column. As @glemaitre points out the report is already a bit crowded but I made the personal judgment that brevity/simplicity isn't really something that people would consider when wanting a comprehensive classification report.

In fact, I'm already using a modified version of this locally and decided to open a PR because I thought other users may also benefit from this. I would be fine if the core team deems this not worth it, since it may just add confusion for many users and I could just continue to use my locally modified version.

Labels: New Feature, module:metrics