Fix saving the last checkpoint when using val check interval
# What does this PR do ?

When saving a checkpoint and the validation check interval isn't divisible by the number of batches, we can miss saving the final checkpoint. This ensures we save the final checkpoint.

I've noticed that the epoch saved in the checkpoint is incremented. Not sure if this will be an issue, but considering this is the final step I assume it should be fine.

cc @ericharper @okuchaiev

# Changelog 
- Fix saving the last checkpoint when `val_check_interval`.

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


## 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.
