[examples] better model example
As a continued effort to make examples easy to read and synchronizing them all to use the same look and feel, this PR tries to improve `run_seq2seq.py` as a model and then future PRs will sync other examples with it.

* [x] makes the helper methods work for rank0 internally - simplifying the caller
* [x] abstracts the helper `trainer.state.save_to_json` into a simple method
* [x] automatically aggregates all metrics into `all_metrics.json` w/o requiring any extra code on the caller side 

Anything else?

@sgugger 