func FIFO(id string, task Task) Stage {
	return &fifo{
		id:   id,
		task: task,
	}
}
FIFO returns a Stage that processes incoming data in a first-in first-out
fashion. Each input is passed to the specified Task and its output
is emitted to the next Stage.
package pipeline
import (
	"context"
	"fmt"
)
type fifo struct {
	id   string
	task Task
}