Add container support to `typecheck`
This pull request **introduces 1 alert** when merging a3c78c222796b9fcffcfebdabf589b9d6abeb2bd into 3c288d8a7caf667c95444c39434e3ebc5f53d911 - [view on LGTM.com](https://lgtm.com/projects/g/NVIDIA/NeMo/rev/pr-65d55c914da1b1fc018109d5c222d0a94573de41)

**new alerts:**

* 1 for Unreachable code Agreed about docs - maybe in a notebook specifically for types ? Or maybe the api docs in RTD
# Changelog
- Add proper depth analysis for nested type definition
- Add several tests to capture cases occurring due to container checks
- Add typecheck argument `ignore_collections` in order to fall back to previous behavior - ignore nesting entirely
- Update type definition of older code to correctly declare nested types
