[WAITING YOUR REVIEW] Issue #2196: now it's possible to save PreTrainedEncoderDecoder objects correctly to file system
Author: TheEdoardo93
Pull request: yes

**Details implemented in this PR:**

- [X] Create the output directory (whose name is passed by the user in the "save_directory" parameter) where it will be saved encoder and decoder, if not exists.
- [X] Empty the output directory, if it contains any files or subdirectories.
- [X] Create the "encoder" directory inside "save_directory", if not exists.
- [X] Create the "decoder" directory inside "save_directory", if not exists.
- [X] Save the encoder and the decoder in the previous two directories, respectively.

Comments:
# [Codecov](https://codecov.io/gh/huggingface/transformers/pull/2201?src=pr&el=h1) Report
> Merging [#2201](https://codecov.io/gh/huggingface/transformers/pull/2201?src=pr&el=desc) into [master](https://codecov.io/gh/huggingface/transformers/commit/f061606277322a013ec2d96509d3077e865ae875?src=pr&el=desc) will **decrease** coverage by `0.07%`.
> The diff coverage is `0%`.

[![Impacted file tree graph](https://codecov.io/gh/huggingface/transformers/pull/2201/graphs/tree.svg?width=650&token=9qOlN6Hb1c&height=150&src=pr)](https://codecov.io/gh/huggingface/transformers/pull/2201?src=pr&el=tree)

```diff
@@            Coverage Diff             @@
##           master    #2201      +/-   ##
==========================================
- Coverage   80.32%   80.25%   -0.08%     
==========================================
  Files         122      122              
  Lines       18342    18358      +16     
==========================================
  Hits        14734    14734              
- Misses       3608     3624      +16
```


| [Impacted Files](https://codecov.io/gh/huggingface/transformers/pull/2201?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [transformers/modeling\_encoder\_decoder.py](https://codecov.io/gh/huggingface/transformers/pull/2201/diff?src=pr&el=tree#diff-dHJhbnNmb3JtZXJzL21vZGVsaW5nX2VuY29kZXJfZGVjb2Rlci5weQ==) | `25.92% <0%> (-6.39%)` | :arrow_down: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/huggingface/transformers/pull/2201?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/huggingface/transformers/pull/2201?src=pr&el=footer). Last update [f061606...0f844f5](https://codecov.io/gh/huggingface/transformers/pull/2201?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).


@julien-c @LysandreJik @thomwolf you can review my code for solving issue #2196 :)

Cool, thanks @TheEdoardo93 ! Do you mind if I clean the commits as to not have a merge commit (rebasing on master instead)? I'll push directly on your fork if that's okay. You'll still be the author of the commits.

@LysandreJik
The steps I’ve done for this PR are the following:
- make my changes on the source code
- git add/commit/push
- after that, the automatic tests start to run but an error of “segmentation fault” occurs
- i’ve changed a line only for “redo” the tests suite after the bug was solved, but my local branch was below “master”. I didn’t see this fact so I didn’t do a “git pull”. After that, I’ve done git add/commit/push and run the tests suite and now the tests suite is working without error

Said so, my changes only occurs in my first commit. The other ones are due to Transformers’ master changes. Have I answered to you? I hope yes.

Thanks for being the author of this PR yet!

I rebased your code on the current master branch so that there's only the two commits. Thanks @TheEdoardo93.

I feel like this is very verbose so let's maybe revisit when we drop Python 2 support.