Fix Python type hints according to Python Docs
# What does this PR do ?

Fix Python type annotations according to the documentation (correct syntax, missing imports, fix incompatible return types).

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

# Changelog 
- remove duplicated type annotations
- fix tuple annotation in function return types according to [python docs](https://docs.python.org/3.8/library/typing.html#typing.Tuple)
- add missing imports (only when module is used, but not imported)
- fix return type in some places where return type is obvious, but not compatible with the annotation (e.g. use `Optional[str]` instead of `str` if `return None` is used)
- avoid quotes for type annotations in some places (if possible): quotes are useful only for forward declaration, in other cases this can lead to [inconsistent or incorrect types](https://stackoverflow.com/a/46458497).
    - Also, if quotes are used and the necessary type is not imported, IDEs / linters can't correctly infer the type. If the type is imported, some tools (including the LGTM bot) consider such import as unused.

# Usage
No executed code is affected (except for missing imports).
Changes only affect type hints by PyCharm or type checkers output (e.g. `syntax error` in `mypy`).

## Example
Before (incorrect return type – unclear automatic signature in PyCharm):
<img width="777" alt="check_lib_version_incorrect" src="https://user-images.githubusercontent.com/9380560/200830147-f5c8435b-a8dd-42e6-9e32-c080166f9723.png">

After (corrected type – PyCharm correctly adds hints):
<img width="809" alt="check_lib_version_correct" src="https://user-images.githubusercontent.com/9380560/200830176-ba824995-eaa4-4a71-97ea-466570c5f9d1.png">

# 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?
- [ ] 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
- [x] 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)
