Improve ModelCheckpoint
🚀 Feature
Add two optional features:

Save the trainer checkpoint just before shutdown: add an optional argument (e.g. save_on_shutdown) in ModelCheckpoint to save the current trainer state before shutdown. Value of save_on_shutdown can only be None or the file path for saving.
Maintain a file (e.g. latest.ckpt) linking to the latest saved model (across multiple runs of training): add an optional argument (e.g. create_link_for_latest), the value can only be None or file path for saving.

Motivation
For the first one, if training is interrupted in the middle, no checkpoint is left after last saving, which could be several epochs ago. If I want to continue, I can only resume, at most, with the one saved at last epoch.
For the second one, this is a feature I always implement, maybe it's not essential for everyone. This is useful when I'm doing frequent training, I have to find all the way to the exact model saved last time. So I create a file called latest.ckpt at somewhere easy to reach, linking to the lastest model.