[deepspeed] fix --load_best_model_at_end
This PR is making `--load_best_model_at_end` reported in https://github.com/huggingface/transformers/issues/14628 work.

There is a problem with resuming from a checkpoint after deepspeed engine was used https://github.com/microsoft/DeepSpeed/issues/1394 - I made a new Issue there to stress out that this is a problem. https://github.com/microsoft/DeepSpeed/issues/1612

This PR:
- adds a workaround that re-creates the deepspeed engine when resuming from `--load_best_model_at_end`
- fixes the timing when deepspeed checkpoint loading kicks in
- adds a test
- adds a commented out test that requires fixing on the deepspeed side

Additionally:
- I added a saving of the DS checkpoint on model_save - I think that would be useful to some users - it's a very quick operation.

Fixes: https://github.com/huggingface/transformers/issues/14628

@sgugger 