Add keypoint-detection task
### Feature request

Add support for keypoint detection. This includes a task, pipeline, dataset label and training pipeline.
The task is to take an image and predict the x and y locations of a set of keypoints. Which keypoints are predicted should depend on the model trained for this task. The training pipeline for keypoint detection should allow to swap components. For example, one should be able to choose the backbone to be any suitable vision transformer model that is available on the huggingface hub.

### Motivation

Keypoint detection is a use case that is prevalent in computer vision. The computer vision subset of the huggingface ecosystem would benefit from adding the popular keypoint detection task to the existing set of tasks.
At the time of writing, existing repositories for keypoint detection often focus on a single particular model, e.g.:

- yolov7: https://github.com/RizwanMunawar/yolov7-pose-estimation
- yolov8: https://docs.ultralytics.com/tasks/pose/
- vitpose: https://github.com/ViTAE-Transformer/ViTPose

The computer vision community could benefit greatly from a high quality community oriented open source hub for keypoint detection.

### Your contribution

I am happy to be part of the discussion, but probably can do little in terms of PR's at this point in time.