TF: GPT2 with native embedding layers
# What does this PR do?

This PR continues the (paused) goal of deprecating our custom TF embedding layers and related code. Previously, we have converted encoder-decoder models (e.g. [here](https://github.com/huggingface/transformers/pull/19263)), removing `TFSharedEmbeddings` there and making the necessary adaptations.

In this PR, I make the necessary adaptations for GPT2. The goal is for you, the reviewers, to raise objections in this PR :D All slow tests for TF GPT2 are passing.


Then, the following sequence of PRs will be opened:
1. Remove `TFSharedEmbeddings` from the other decoder-only models
2. Remove other uses of `TFSharedEmbeddings` in the codebase (e.g. in tests)
3. Remove `resize_token_embeddings` and all related functions (it is only used to resize our models' embeddings instantiated with `TFSharedEmbeddings`)
4. Remove the slow decorator from `test_save_load_after_resize_token_embeddings`, which will be fixed as a consequence of these changes 🙌 
_The documentation is not available anymore as the PR was closed or merged._