Missing PredictionHeadTransform for BertGenerationDecoder
Author: j-min
Pull request: no

## Environment info
<!-- You can run the command `transformers-cli env` and copy-and-paste its output below.
     Don't forget to fill out the missing fields in that output! -->

- `transformers` version: 4.6.0

### Who can help
@LysandreJik

## Information

Model I am using (Bert, XLNet ...): Bert, BertForGeneration
It seems the [`BertPredictionHeadTransform`](https://github.com/huggingface/transformers/blob/v4.6.0/src/transformers/models/bert/modeling_bert.py#L645) layer (dense+layer norm) is not used in [BertGenerationDecoder](https://github.com/huggingface/transformers/blob/v4.6.0/src/transformers/models/bert_generation/modeling_bert_generation.py#L430), while it is used in [the original BERT](https://github.com/huggingface/transformers/blob/v4.6.0/src/transformers/models/bert/modeling_bert.py#L657). Is this expected?

## To reproduce

Steps to reproduce the behavior:

```python3

from transformers import  BertForPreTraining, BertGenerationDecoder
bert = BertForPreTraining.from_pretrained('bert-base-uncased')
bert
>>> ....
          (output): BertOutput(
            (dense): Linear(in_features=3072, out_features=768, bias=True)
            (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)
            (dropout): Dropout(p=0.1, inplace=False)
          )
        )
      )
    )
    (pooler): BertPooler(
      (dense): Linear(in_features=768, out_features=768, bias=True)
      (activation): Tanh()
    )
  )
  (cls): BertPreTrainingHeads(
    (predictions): BertLMPredictionHead(
      (transform): BertPredictionHeadTransform(
        (dense): Linear(in_features=768, out_features=768, bias=True)
        (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)
      )
      (decoder): Linear(in_features=768, out_features=30522, bias=True)
    )
    (seq_relationship): Linear(in_features=768, out_features=2, bias=True)
  )
)


bertdecoder = BertGenerationDecoder.from_pretrained('bert-base-uncased', is_decoder=True)
bertdecoder
>>> ....
          (output): BertOutput(
            (dense): Linear(in_features=3072, out_features=768, bias=True)
            (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)
            (dropout): Dropout(p=0.1, inplace=False)
          )
        )
      )
    )
  )
  (lm_head): BertGenerationOnlyLMHead(
    (decoder): Linear(in_features=768, out_features=30522, bias=True)
  )
)
```
## Expected behavior

BertGenerationDecoder has the same transform layer before the final LM head.

```python3
(transform): BertPredictionHeadTransform(
        (dense): Linear(in_features=768, out_features=768, bias=True)
        (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)
      )
```


Comments:
SImilarly, `token_type_embeddings` is also missing for [BertGenerationEmbeddings](https://github.com/huggingface/transformers/blob/v4.6.0/src/transformers/models/bert_generation/modeling_bert_generation.py#L133).

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.

Hey @j-min,

`BertForGeneration` was added so that the checkpoints of https://huggingface.co/blog/warm-starting-encoder-decoder can be used in Transformers. Those models don't really need `token_type_ids` since they are generation models and also the lm head is different


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.