Support synchronous saving and loading in CheckpointManager (#5693)
* Support synchronous saving and loading in CheckpointManager
* Use 0 to indicate no upper bound
* Don't track async_queue_size
* Cache tracked steps locally
* Track creation time in metadata
* Rename save_period to save_interval
* Fix tests