Add file class based inference API for diarization
# What does this PR do?

Supports:

```python
from nemo.collections.asr.models import NeuralDiarizer

diarizer = NeuralDiarizer.from_pretrained(model_name='diar_msdd_telephonic')

annotation = diarizer("an4_diarize_test.wav")

print(annotation.to_rttm())
```

User can change the device:

```python
import torch
from nemo.collections.asr.models import NeuralDiarizer

diarizer = NeuralDiarizer.from_pretrained(model_name='diar_msdd_telephonic')
diarizer.to(torch.device('cuda'))
```

Supports passing the maximum number of speakers, or the actual number of speakers in a file (oracle):

```python
annotation = diarizer("an4_diarize_test.wav", num_speakers=2)

annotation = diarizer("an4_diarize_test.wav", max_speakers=4)
```

Relies on a temporary directory, which can be specified if preferred:

```python
annotation = diarizer("an4_diarize_test.wav", out_dir="my_temp/")
```

List of available models:

```python
from nemo.collections.asr.models.msdd_models import NeuralDiarizer

print(NeuralDiarizer.list_available_models())
"""
PretrainedModelInfo(
	pretrained_model_name=diar_msdd_telephonic,
	description=For details about this model, please visit https://ngc.nvidia.com/catalog/models/nvidia:nemo:diar_msdd_telephonic,
location=https://api.ngc.nvidia.com/v2/models/nvidia/nemo/diar_msdd_telephonic/versions/1.0.0/files/diar_msdd_telephonic.nemo
)
"""
```

### TODO
* Add tests, ensure that config options are passed correctly and updated correctly. The config logic is quite messy due to mutable objects, but this should be saved for a larger refactor.
* Hopefully in the future, `NeuralDiarizer` will be a NeMo PT model file too, save for a later refactor

**Collection**: ASR, Speaker Tasks

# Changelog 
- Add file class based inference API for Diarization.

# 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