### Description

Currently, to inject custom annotations into airflow pods, we can use such a snippet in the `values.yaml`:
```
airflowPodAnnotations:
  my-annotation: "foo"
```

However, this will inject the annotation to the pods of all airflow components (scheduler.. worker.. etc.). There is no way to inject different annotations to different components.

It would be nice to be able to inject different annotations to different components with such a `values.yaml`:
```
workers:
  podAnnotations:
    my-annotation: "foo"

scheduler:
  podAnnotations:
    my-annotation: "bar"
```


### Use case/motivation

Generally, it's not a bad idea to make things more customizable to the chart users.

Specifically for my use case, the motivation is because we are using vault sidecar to inject secrets into our airflow pods: https://www.vaultproject.io/docs/platform/k8s/injector#secrets-via-annotations

And we wish to have different vault connection settings for the different pods.

### Related issues

_No response_

### Are you willing to submit a PR?

- [X] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

chart/tests/test_airflow_common.py
"""
        Test Annotations are correctly applied on all pods created Scheduler, Webserver & Worker
        deployments.
        """
        release_name = "TEST-BASIC"
        k8s_objects = render_chart(
            name=release_name,
            values={"airflowPodAnnotations": {"test-annotation/safe-to-evict": "true"}},
            show_only=[
                "templates/scheduler/scheduler-deployment.yaml",
                "templates/workers/worker-deployment.yaml",
                "templates/webserver/webserver-deployment.yaml",
                "templates/flower/flower-deployment.yaml",
            ],
        )
        assert 4 == len(k8s_objects)
        for k8s_object in k8s_objects:
            annotations = k8s_object["spec"]["template"]["metadata"]["annotations"]
            assert "test-annotation/safe-to-evict" in annotations
            assert "true" in annotations["test-annotation/safe-to-evict"]
    @pytest.mark.parametrize(
        "use_default_image,expected_image",
        [
            (True, "apache/airflow:2.1.0"),
            (False, "apache/airflow:user-image"),
        ],
    )
    def test_should_use_correct_image(self, use_default_image, expected_image):