Bounded incremental Server-Sent Events framing.
@type event() :: %{event: String.t() | nil, data: String.t()}
@type t() :: %Backplane.AiProtocol.SSE{ buffer: term(), closed?: term(), max_buffer_bytes: term(), max_frame_bytes: term() }
@spec feed(t(), binary()) :: {:ok, t(), [event()]} | {:error, Backplane.AiProtocol.Error.t(), t()}
@spec finish(t()) :: {:ok, t(), [event()]} | {:error, Backplane.AiProtocol.Error.t(), t()}
@spec new(keyword()) :: t()