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:
I would like to have some input from other core devs: ping @thomasjpfan @betatim @adrinjalali

Labels: New Feature, module:metrics