Parses Protocol AST
@type t() :: %Umwelt.Felixir.Protocol{ aliases: list(), context: list(), name: String.t(), note: String.t(), signatures: list() }