Text memmap dataset
Signed-off-by: Micha Livne <mlivne@nvidia.com>

# What does this PR do ?

Has mechanism to retire older ind files by updating internal idx version.

Indexing speed of 1443990774 samples in 147 files using 6 workers
```
```

Loading speed
```
[NeMo I 2022-04-29 00:23:22 text_memmap_dataset:85] Time loading 147 mem-mapped files: 0:00:04.395558
```

```
In [9]: len(ds)
Out[9]: 1443990774
# Timing without tokenizer
In [10]: %timeit -n 1000  ds[np.random.randint(len(ds))]
555 µs ± 16.9 µs per loop (mean ± std. dev. of 7 runs, 1,000 loops each)
# TIming with 'byte-level' tokenizer
In [20]: %timeit -n 1000  ds[np.random.randint(len(ds))]
724 µs ± 19.8 µs per loop (mean ± std. dev. of 7 runs, 1,000 loops each)
```

Add a one line overview of what this PR aims to accomplish.

**Collection**: [Note which collection this PR will affect]

# Changelog 
- Added `TextMemMapDataset`
- Added `CSVMemMapDataset`
- Retired `MegatronDataset`
- Added `nemo/collections/nlp/data/language_modeling/text_memmap_dataset.py` to preprocess indices (else happs on the fly at first run)
- Added `nemo/collections/nlp/data/machine_translation/sequence_to_sequence_dataset.py`
-  Added `scripts/nlp_language_modeling/build_index_memmap_data.py`

# Usage

Example for caching index files:

```bash
NeMo/scripts/nlp_language_modeling/build_index_memmap_data.py *.txt
```

Index files will be created when instantiating a memory mapped dataset if missing.

```python
```

# Before your PR is "Ready for review"
**Pre checks**:
- [ ] 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**:
- [ ] 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)
