Add fully torch.jit.script-able speaker clustering module
# What does this PR do ?

The main goal of this PR is adding a fully torch.script-able clustering function.
**Convert entire clustering module to jit.scriptabe module**: For this purpose, the clustering code employed torch.module class so that clustering system
can be converted to torch.jit.script.  
**Convert all string variables to float**: As a side-effect, all the arguments that are passed to clustering module should be torch.Tensor.float, 
so the string-formatted arguments in diarization pipeline is all changed to torch.Tensor.float.


After this PR is merged, NeMo and Riva will be sharing an identical speaker clustering code.
Input and output is torch.Tensor, and by default, all operations are processed on GPU.

Also, integer type annotation should be torch.LongTensor if you want to convert to torch.script.


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

# Changelog 

- Changed COSclustering function -> forward() and changed class to use torch.module.
- Fixed docstrings.
- Removed unused class variables 
- Replace eigvalsh (only calculate eig vals) instead eigsh (full eig-decomp) which makes computation a bit faster 
- Timestamps for clustering is now using float instead using string format.

# Usage
* You can potentially add a usage example below

```python
  python neural_diarizer/multiscale_diar_decoder_infer.py \
    diarizer.manifest_filepath=<path to manifest file> \
    diarizer.out_dir='demo_output' \
    diarizer.speaker_embeddings.parameters.save_embeddings=False \
    diarizer.vad.model_path=<pretrained model name or path to .nemo> \
    diarizer.speaker_embeddings.model_path=<pretrained speaker embedding model name or path to .nemo> \
    diarizer.msdd_model.model_path=<pretrained MSDD model name or path .nemo> \
```

# 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)
- [x] Did you write any new necessary tests?
- [x] 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

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)
