UL2 sampling is Poisson instead of uniform
UL2 objectives should be sampled with uniform probability, including subtasks. Instead, currently, first the overarching denoiser is uniformly sampled and then the denoising subtask is again sampled uniformly. This is only the case [here for X-denoisers](https://github.com/NVIDIA/NeMo/blob/main/nemo/collections/nlp/data/language_modeling/megatron/ul2_dataset.py#L174-L178) currently, because one R- and one X-denoising objective from the paper are missing.

Compare:

```python
import itertools
import random

# The integers indicate the different task types in the paper.
tasks = {'R': [0, 1], 'S': [2], 'X': [3, 4, 5, 6]}

# How it's currently done in NeMo:
denoiser_subtasks = random.choice(tasks)
subtask = random.choice(denoiser_subtasks)
# Each of 0, 1 has 1/3 * 1/2 chance.
# 2 has 1/3 chance.
# Each of 3, 4, 5, 6 has 1/3 * 1/4 chance.

# How it's done in the code snippet from the UL2 paper:
subtask = random.choice(list(itertools.chain.from_iterable(tasks.values())))
# Each of 0, 1, 2, 3, 4, 5, 6 has 1/7 chance.
```