[TTS] Add callback for saving audio during FastPitch training
# What does this PR do ?

Add an optional and configurable callback for FastPitch training which allows providing a vocoder checkpoint and saving any combination of model output (spectrogram, alignment, audio, audio with gt duration, prosody features) to (local_disk, tensorboard, wandb).

The callback expects the user to provide a separate manifest with all of the examples to generate the audio for. A user can create this by manually selecting 5-10 rows from their validation manifest.

The callback interface should be generic enough to use it for logging any training recipe, such as vocoder training (which will be added in a future PR).

**Collection**: [TTS]

# Changelog 
- Add generic LoggingCallback interface for logging model predictions
- Add FastPitchArtifactGenerator to log model outputs for FastPitch
- Modify new fastpitch example config to show to configure the logger
- Set FastPitch min_token_duration to 1 to avoid various edge cases during inference where output audio is empty array (all duration predictions are 0). This is also more accurate as the aligner requires the alignment to assign at least 1 audio frame to each input token. I could make this is a config (defaulting to 0) if anyone thinks the change is risky.

# 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**:
- [x] New Feature
- [ ] Bugfix
- [ ] Documentation
