[trainer] memory metrics: add memory at the start report
While debugging a user report https://github.com/huggingface/transformers/issues/13616, I have noticed when we use deepspeed w/ zero3 it allocates some memory on GPU before Trainer's init, so this memory doesn't get reported and then I got a mysterious negative delta:
```
  train_mem_gpu_alloc_delta  =     -153MB
  train_mem_gpu_peaked_delta =     2012MB
```
so it was very confusing. This PR adds another 2 metrics which report memory usage at the very start of the Trainer (init), so now the report becomes:
```
  before_init_mem_gpu        =      312MB
  train_mem_gpu_alloc_delta  =     -153MB
  train_mem_gpu_peaked_delta =     2012MB
```
and it becomes obvious that some memory was allocated before the Trainer started and now the minus can be added to a non-zero initial value.

For symmetry added the cpu memory usage as well.

Examples of the new report (deleted all, but memory metrics):
```
$ CUDA_VISIBLE_DEVICES=0 PYTHONPATH=src python examples/pytorch/language-modeling/run_clm.py \
--model_name_or_path gpt2 --do_train --train_file tests/fixtures/sample_text.txt --fp16 true \
--output_dir output --overwrite_output_dir 1 --per_device_train_batch_size 1 --report_to none \
--skip_memory_metrics 0

***** train metrics *****
  before_init_mem_cpu        =     1945MB
  before_init_mem_gpu        =        0MB
  init_mem_cpu_alloc_delta   =     3249MB
  init_mem_cpu_peaked_delta  =      443MB
  init_mem_gpu_alloc_delta   =      487MB
  init_mem_gpu_peaked_delta  =        0MB
  train_mem_cpu_alloc_delta  =      151MB
  train_mem_cpu_peaked_delta =        0MB
  train_mem_gpu_alloc_delta  =     1431MB
  train_mem_gpu_peaked_delta =      562MB

$ PYTHONPATH=src deepspeed --num_gpus 1 examples/pytorch/language-modeling/run_clm.py \
--deepspeed tests/deepspeed/ds_config_zero3.json --model_name_or_path gpt2 --do_train \
--train_file tests/fixtures/sample_text.txt --fp16 true --output_dir output \
--overwrite_output_dir 1 --per_device_train_batch_size 1 --report_to none \
--skip_memory_metrics 0

***** train metrics *****
  before_init_mem_cpu        =     5262MB
  before_init_mem_gpu        =      312MB
  init_mem_cpu_alloc_delta   =        0MB
  init_mem_cpu_peaked_delta  =        0MB
  init_mem_gpu_alloc_delta   =        0MB
  init_mem_gpu_peaked_delta  =        0MB
  train_mem_cpu_alloc_delta  =     3288MB
  train_mem_cpu_peaked_delta =      465MB
  train_mem_gpu_alloc_delta  =     -153MB
  train_mem_gpu_peaked_delta =     2012MB
```
For the non-DS case, the gpu memory usage is usually 0 and it's reflected in the report, and non-0 with DS.

Additionally I prepared several other possible reports if someone puzzles over the math or has a complex situation. Left those in the comments if someone needs them.

@sgugger 