Add encoder-decoder word embeddings tying by default
As discussed in #8158 config has `tie_encoder_decoder_word_embeds =True` parameter. `_tie_encoder_decoder_word_embeddings ` is called when Encoder Decoder model is initialized, if sizes are the same, the encoder word embedding matrix is assigned to decoder one, this may cause unexpected behavior if e.g. user chooses to init model with bert and gpt and their vocabs have same sizes but different words. 

@patrickvonplaten 
@alexyalunin - this is a great PR, thanks a lot! In general the function does exactly what I had in mind :-) I added some changes that I'd suggest we apply.

Also it would be great if we could add a test analogues to this one: https://github.com/huggingface/transformers/blob/93354bc7790ecf768690745db2407b7542264304/tests/test_modeling_encoder_decoder.py#L306 . 

If you have any questions or need help, let me know! 

Looking forward to merge this soon <|||||>> Thanks for the PR! Though I think the name of this option is kinda confusing, I can't think of a better one :)

I'm fine with the name<|||||>@patrickvonplaten finally I have found some time to finish this PR. I couldn't finish tests, you see I tried to initialize EncoderDecoder with a model and its copy and tie word embeddings, it seems like they are tied (I check by looking at `model.named_parameters()`, i.e these parameters do not have `decoder.word_embeddings`), but when I save the model and load it `decoder.word_embeddings` now appear in `model.named_parameters()`. I trained such a model for my project and after few epochs word embs for encoder and decoder are the same but they both appear in `model.named_parameters()`. Pls take a look. <|||||>This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread.

Please note that issues that do not follow the [contributing guidelines](https://github.com/huggingface/transformers/blob/master/CONTRIBUTING.md) are likely to be ignored.