Update GPT2 I/O definition to be recognized by ORT optimizer.
This PR aims at making the GPT2 + past more compatible with ONNX Runtime optimizer (especially attention fusion).
Past key values should be presented as a single tensor with both key and value stacked on the leading axis.

It also provide a concat mecanism to merge the resulting past key values so it's a single tensor too.

- [x] I/O shapes changes
- [x] I/O dtype changes
- [ ] Past keys wrapper
- [ ] Monkey Patching
- [ ] Unittests
The docs for this PR live [here](https://moon-ci-docs.huggingface.co/docs/transformers/pr_16754). All of your documentation changes will be reflected on that endpoint.<|||||>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/main/CONTRIBUTING.md) are likely to be ignored.