Update the TopKSequenceGenerator to support Top-P sampling
# What does this PR do ?

Implements Top-P sampling, also known as nucleus sampling.

I put it in with the Top-K sampler, as I felt like this kept the code cleaner – at the cost of an `if` statement in the decoding loop. I could move it to its own class as well, but since a lot of people use Top-K and Top-P together, we'd probably want that new class to support both anyway.

Let me know if there are any changes needed :)

**Collection**: NLP, ASR

# Changelog 
- Add the parameter `top_p: Optional[float]` to the `nemo.collections.nlp.modules.common.transformer.transformer_generators.TopKSequenceGenerator` and the `nemo.collections.asr.modules.transformer.transformer_generators.TopKSequenceGenerator` classes
- This allows using Top-P sampling in combination with Top-K sampling
- Adds parameters for `top_p` to the two places in code where these classes are called

# Usage
```python3
from nemo.collections.nlp.models.machine_translation import MTEncDecModel
from nemo.collections.nlp.modules.common.transformer.transformer_generators import TopKSequenceGenerator

model = MTEncDecModel.from_pretrained('nmt_en_es_transformer12x2')
top_k_and_p_search = TopKSequenceGenerator(
    model.beam_search.embedding,
    model.beam_search.decoder,
    model.beam_search.log_softmax,
    pad=model.beam_search.pad,
    bos=model.beam_search.bos,
    eos=model.beam_search.eos,
    beam_size=5,
    top_p=0.75,
)

s = 'Among the various methods of peeling a cucumber, I find only a few to be worth my precious time.'
print(model.translate([s]))
# ['Entre los diversos métodos de pelar un pepino, encuentro solo unos pocos que valen mi precioso tiempo.']

model.beam_search = top_k_and_p_search
print(model.translate([s]))
# Varies, e.g.,
# ['Entre los diferentes métodos de pelar un pepino, solo encuentro que unos pocos valen mi valioso tiempo.']
```

# 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?
- [x] Did you add or update any necessary documentation?
- [x] Does the PR affect components that are optional to install? (Ex: Numba, Pynini, Apex etc): No
  - [ ] 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)
