### Description

The stable REST API seems to be missing the functionality to delete a DAG. 
This would mirror clicking the "Trash Can" on the UI (and could maybe eventually power it)

![image](https://user-images.githubusercontent.com/80706212/131702280-2a8d0d74-6388-4b84-84c1-efabdf640cde.png)


### Use case/motivation

_No response_

### Related issues

_No response_

### Are you willing to submit a PR?

- [ ] 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/api_connexion/endpoints/dag_endpoint.py
"""Get details of DAG."""
    try:
        dag: DAG = current_app.dag_bag.get_dag(dag_id)
    except SerializedDagNotFound:
        raise NotFound("DAG not found", detail=f"The DAG with dag_id: {dag_id} was not found")
    if dag is None:
        raise NotFound("DAG not found", detail=f"The DAG with dag_id: {dag_id} was not found")
    return dag_detail_schema.dump(dag)
@security.requires_access([(permissions.ACTION_CAN_READ, permissions.RESOURCE_DAG)])
@format_parameters({'limit': check_limit})
@provide_session
def get_dags(limit, session, offset=0, only_active=True):
    """Get all DAGs."""
    if only_active:
        dags_query = session.query(DagModel).filter(~DagModel.is_subdag, DagModel.is_active)
    else:
        dags_query = session.query(DagModel).filter(~DagModel.is_subdag)
    readable_dags = current_app.appbuilder.sm.get_accessible_dag_ids(g.user)
    dags_query = dags_query.filter(DagModel.dag_id.in_(readable_dags))
    total_entries = len(dags_query.all())
    dags = dags_query.order_by(DagModel.dag_id).offset(offset).limit(limit).all()
    return dags_collection_schema.dump(DAGCollection(dags=dags, total_entries=total_entries))
@security.requires_access([(permissions.ACTION_CAN_EDIT, permissions.RESOURCE_DAG)])
@provide_session
def patch_dag(session, dag_id, update_mask=None):