[WIP] EncoderDecoder model that works
Continuing #3383 from @patrickvonplaten to facilitate MarianMT project.

### Targeted API:
```python
model = EncoderDecoderModel.from_model_names('bert-base-uncased', 'bert-based-uncased')
model.save_pretrained('bert2bert')
model.from_pretrained('bert2bert') # way 2
```

### TODO
- support test_common 
- test forward, generate
- raise useful errors for incompatible encoder/decoder combinations


