### Description

Authentication using OAuth for Databricks Service Principals is now in Public Preview.  I would like to implement this into the Databricks Hook.   By adding "service_principal_oauth" as a boolean value set to `true` in the extra configuration, the Client Id and Client Secret can be supplied as a username and password.

https://docs.databricks.com/dev-tools/authentication-oauth.html

### Use case/motivation

Before Authentication using Oauth the only way to use the Databricks Service Principals was by another user account performing a token request on-behalf of the Service Principal.  This process is difficult to utilize in the real world, but this new way of collecting access tokens changes the process and should make a big difference.

### 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)

self._session = aiohttp.ClientSession()
        return self
    async def __aexit__(self, *err):
        await self._session.close()
        self._session = None
    @staticmethod
    def _parse_host(host: str) -> str:
        """
        This function is resistant to incorrect connection settings provided by users, in the host field.
        For example -- when users supply ``https://xx.cloud.databricks.com`` as the
        host, we must strip out the protocol to get the host.::
            h = DatabricksHook()
            assert h._parse_host('https://xx.cloud.databricks.com') == \
                'xx.cloud.databricks.com'
        In the case where users supply the correct ``xx.cloud.databricks.com`` as the
        host, this function is a no-op.::
            assert h._parse_host('xx.cloud.databricks.com') == 'xx.cloud.databricks.com'
        """
        urlparse_host = urlsplit(host).hostname
        if urlparse_host:
            
            return urlparse_host
        else:
            
            return host
    def _get_retry_object(self) -> Retrying: