**Describe the bug** Now the `_metrics.json` file created by [BaseCheckpointCallback](https://github.com/catalyst-team/catalyst/blob/master/catalyst/dl/callbacks/checkpoint.py#L13) stores only the latest stage metrics (because the file is [simply overwritten there](https://github.com/catalyst-team/catalyst/blob/master/catalyst/dl/callbacks/checkpoint.py#L30)) We need to make a normal metric manager for this checkpoint. **To Reproduce** Steps to reproduce the behavior: 1. Add a config file with several training stages. 2. Add a [CheckpointCallback](https://github.com/catalyst-team/catalyst/blob/master/catalyst/dl/callbacks/checkpoint.py#L77) with `save_n_best` > 1 to store several best checkpoints (for example 3) 3. In `logdir/checkpoints/_metrics.json` we have logs only for the last stage **Expected behavior** Metrics are logged from all the stages.