ST Sampled Softmax
# What does this PR do ?

Adds Sampled softmax to Speech Translation preliminary support

**Collection**: [ASR, ST]

# Changelog 
- Update config for adding ctc and transformer sampled softmax
- Make text augmenttion optional
- Update code in transformer model to support ctc and transformer sampled softmax
- Add `SampledConvASRDecoder` and `SampledMultiLayerPerceptron` for CTC and transformer sampled softmax support
- Add `SampledTokenClassifier` to wrap `SampledMultiLayerPerceptron` to support both normal MLP and sampled MLP.
- Auto style fixes

# Usage

```shell

python speech_to_text_transf.py \
    --config-path="<Path to config>" \
    --config-name="speech_translation_with_tts.yaml" \
    ...
    model.ctc_coef=0.3 \
    model.sampled_softmax=True \
    model.n_samples=256 \  # <any value > 1>

```

# 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)
- [ ] 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
