<!--

Welcome to Apache Airflow!  For a smooth issue process, try to answer the following questions.
Don't worry if they're not all applicable; just try to include what you can :-)

If you need to include code snippets or logs, please put them in fenced code
blocks.  If they're super-long, please use the details tag like
<details><summary>super-long log</summary> lots of stuff </details>

Please delete these comment blocks before submitting the issue.

-->

**Description**

The possibility to add a lineage backend was removed in https://github.com/apache/airflow/pull/6564 but was never reintroduced. Now that this code is in 2.0, the lineage information is only in the xcoms and the only way to get it is through an experimental API that isn't very practical either.

**Use case / motivation**

A custom callback at the time lineage gets pushed is enough to send the lineage information to whatever lineage backend the user has.

**Are you willing to submit a PR?**

I'd be willing to make a PR recovering the LineageBackend and add changes if needed, unless there is a different plan for lineage from the maintainers.

airflow/lineage/__init__.py
#
#
#
"""Provides lineage support functions"""
import json
import logging
from functools import wraps
from typing import Any, Callable, Dict, Optional, TypeVar, cast
import attr
import jinja2
from cattr import structure, unstructure
from airflow.utils.module_loading import import_string
ENV = jinja2.Environment()
PIPELINE_OUTLETS = "pipeline_outlets"
PIPELINE_INLETS = "pipeline_inlets"
AUTO = "auto"
log = logging.getLogger(__name__)
@attr.s(auto_attribs=True)
class Metadata:
    """Class for serialized entities."""
    type_name: str = attr.ib()
    source: str = attr.ib()
    data: Dict = attr.ib()
def _get_instance(meta: Metadata):