### Apache Airflow Provider(s)

pagerduty

### Versions of Apache Airflow Providers

apache-airflow-providers-pagerduty==2.0.1

### Apache Airflow version

2.1.4 (latest released)

### Operating System

macOS catalina

### Deployment

Virtualenv installation

### Deployment details

_No response_

### What happened

Currently, the PagerdutyHook can be used to access two API's: 
- Events API: interface to send alerts. Needs only  a integration key/routing key/Events API key. (https://developer.pagerduty.com/docs/get-started/getting-started/#events-api)
- Pagerduty API: interface to interact with account data, project setup, etc. Needs only a Pagerduty rest API Key or account token. (https://developer.pagerduty.com/docs/get-started/getting-started/#rest-api)

In order to interact with the API's, the PagerdutyHook uses two attributes that refer to these api keys: 
- `token`:  Refers to the account token/rest API key. This attribute is retrieved from the `Password` field in the connection or can be set at initialization of a class instance by passing it into the init method of the class.  In the __Init__ method, its value is asserted to be not `None`. The token is **not used** for sending alerts to Pagerduty.
- `routing_key`: Refers to the integration key/Events API key. This attribute is retrieved from the `Extra` field and is used in the `create_event` method to send request to the Events API. In the `create_event` method the value is asserted to be not `None`.

As a result if users want to use the hook to only send events, they will need to provide a connection with a random string as a password (which can't be None) and the actual integration key in the `extra` field. This to me makes no sense. 

**Proposed solution:** Rather than having the two api's in a single hook, separate them into two different hooks. This increases code simplicity and maintainability.

### What you expected to happen

_No response_

### How to reproduce

_No response_

### Anything else

_No response_

### Are you willing to submit 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)

airflow/providers/pagerduty/hooks/pagerduty.py
"""
    Takes both PagerDuty API token directly and connection that has PagerDuty API token.
    If both supplied, PagerDuty API token will be used.
    :param token: PagerDuty API token
    :param pagerduty_conn_id: connection that has PagerDuty API token in the password field
    """
    conn_name_attr = "pagerduty_conn_id"
    default_conn_name = "pagerduty_default"
    conn_type = "pagerduty"
    hook_name = "Pagerduty"
    def __init__(self, token: Optional[str] = None, pagerduty_conn_id: Optional[str] = None) -> None:
        super().__init__()
        self.routing_key = None
        self._session = None
        if pagerduty_conn_id is not None:
            conn = self.get_connection(pagerduty_conn_id)
            self.token = conn.get_password()
            routing_key = conn.extra_dejson.get("routing_key")
            if routing_key:
                self.routing_key = routing_key
        if token is not None:  
            self.token = token
        if self.token is None:
            raise AirflowException('Cannot get token: No valid api token nor pagerduty_conn_id supplied.')
    def get_session(self) -> pdpyras.APISession: