[multiple models] skip saving/loading deterministic state_dict keys
Implementing https://github.com/huggingface/transformers/issues/7296

* [x] make testing save/load of `keys_to_never_save` a common test by moving it from `fsmt` modeling test
* [x] implement skipping for all models with static positional embeddings: mbart, pegasus, marian (fsmt had this feature in first place)

Fixes: #7296

@LysandreJik, @sshleifer, @sgugger 
OK, so how would you recommend we run a specific common test for a model whose test module isn't running common tests at all? 

Please have a look at the approach I used for `mbart`  https://github.com/huggingface/transformers/pull/7878/files#diff-f3b9af7b4721bdf972a72e35a35e8742ddc986f12218e728cd2b6ad30a156abb

I basically made a very stripped down `ModelTester` and then used an alias hack to run just a specific common test via:
```
class SelectiveCommonTest(unittest.TestCase):
    test_save_load_keys_to_never_save = ModelTesterMixin.test_save_load_keys_to_never_save
```
Is this any good, or would you recommend a different approach - the idea is not to copy the same test to each test module.
<|||||>I like how you did it.
Adding @LysandreJik and @sgugger to see if they agree before you do it 5 times.
<|||||>> I imagine you double-checked the test was indeed executed.

Yes. 

Indeed, my initial test that I wrote for fsmt wasn't executing, since I renamed the keys in the code and forgot the test and the test was no-op if it didn't find the right keys. So some print()s helped to verify it indeed worked in this new incarnation.<|||||>I think  `test_save_load_missing_keys` should be handled separately since it can add a significant overhead if run by all models, since I noticed tf models are **very** slow at save/load tests.. I reverted moving it from fsmt to common tests for now - back to just fsmt - will do a separate PR about it.
<|||||>Anybody with a good knowledge of XLM? @sshleifer suggested to add xlm to this PR, but I'm not sure whether it's safe to not save `self.position_embeddings`, since as you can see here:
https://github.com/huggingface/transformers/blob/master/src/transformers/modeling_xlm.py#L439
the deterministic non-trained weights happen only if `config.sinusoidal_embeddings` is True. Otherwise it gets trained like any other embed layer.

Which leaves just: `position_ids` which is tiny a set of 512-2048 floats, which is not worth bothering for IMHO.

<|||||>wrt t5 - I don't see anything positional or deterministic for that matter, but this is quite a different model - are there any state_dict keys here that would be a good candidate for not saving?<|||||>I implemented this for: mbart, pegasus, marian - all subclasses of `BartForConditionalGeneration` w/ `static_position_embeddings=True`. `fsmt` already had it.

Anything else that I may have missed?

If not, this PR is good to go.