Confidence ensembles implementation
# What does this PR do ?

Adds confidence ensembles implementation.

I will follow up with more features (e.g., tuning of the LR/confidence parameters) as well as documentation and probably a tutorial notebook. But the basic functionality is fully implemented.

**Collection**: ASR

# Changelog 
- Add new script to `scripts/confidence-ensembles/build_ensemble.py`. It can be run to build an ensemble by providing models/data. It will train confidence-based model selection block and output .nemo checkpoint containing all models + pkl file for the model selection.
- Add new argument to `transcribe_speech.py` `return_transcriptions` which can be used to select if transcriptions or config is returned. Default to current behavior of returning config.
- Add a new temperature parameter to the decoding strategies and ctc/rntt decoder/joint blocks. What's currently called `temperature` in the confidence config is not really a temperature, but instead an `alpha` parameter as defined here https://arxiv.org/abs/2212.08703. Temperature should be applied before softmax, so it cannot be directly implemented inside confidence computation.
- Add a new `ConfidenceEnsembleModel` class that supports running `transcribe` method for the ensemble. It does not support training or any other kind of inference (`forward` method is not implemented). This is by design as we only combine the models through model selection block and it operates on the full transcriptions, not intermediate results.
- Add `scripts/confidence_ensembles/test_confidence_ensembles.py` which contains a few integration tests of building->running ensemble of es-it models. The plan is to include it in the nightly tests, since it depends on ~200mb of data and takes 5-10 minutes to run.

# Usage
* You can potentially add a usage example below

```python
# Add a code snippet demonstrating how to use this 
```

# Before your PR is "Ready for review"
**Pre checks**:
- [x] Make sure you read and followed [Contributor guidelines](https://github.com/NVIDIA/NeMo/blob/main/CONTRIBUTING.md)
- [x] Did you write any new necessary tests?
- [ ] Did you add or update any necessary documentation?
- [ ] Does the PR affect components that are optional to install? (Ex: Numba, Pynini, Apex etc)
  - [ ] Reviewer: Does the PR have correct import guards for all optional libraries?
  
**PR Type**:
- [x] New Feature
- [ ] Bugfix
- [ ] Documentation

If you haven't finished some of the above items you can still open "Draft" PR.


## Who can review?

Anyone in the community is free to review the PR once the checks have passed. 
[Contributor guidelines](https://github.com/NVIDIA/NeMo/blob/main/CONTRIBUTING.md) contains specific people who can review PRs to various areas.

# Additional Information
* Related to # (issue)
