Fix loading checkpoints from dirpath if it's specified
Signed-off-by: Jocelyn Huang <jocelynh@nvidia.com>

# What does this PR do ?

Fixes checkpoint loading if `exp_manager.checkpoint_callback_params.dirpath` is specified.

**Collection**: Utils

# Changelog 
- Adds a check for whether `dirpath` has been set, and passes it in to `check_resume()` to use instead of `<log_dir>/checkpoints` for checkpoint restoration
- Unit tests added for restoring from `dirpath`
- Tested load/store for both `dirpath` being set and not (using `<log_dir>/checkpoints`) and both now work

# Usage

The following should now save to AND load from the specified `ckpt_dir`.

```bash
python examples/tts/fastpitch.py \
train_dataset=train.json \
validation_datasets=val.json \
trainer.devices=1 \
trainer.max_epochs=5 \
+exp_manager.checkpoint_callback_params.dirpath=ckpt_dir/ \
+exp_manager.explicit_log_dir=logdir/ \
exp_manager.resume_if_exists=true \
exp_manager.resume_ignore_no_checkpoint=true \
trainer.check_val_every_n_epoch=1
```

**PR Type**:
- [ ] New Feature
- [x] Bugfix
- [ ] Documentation

# Additional Information
* Related to #5136 
