func NewMemStream() *Stream {
	f := newMemFile("")
	return newStream(f, singletonFs{f})
}
NewMemStream creates an in-memory stream with no name, and no underlying fs.
This should replace uses of NewStream("name", NewMemFs()).
Remove() is unsupported as there is no fs to remove it from.
package stream
import (
	"errors"
	"sync"
)
var ErrUnsupported = errors.New("unsupported")
type Stream struct {
	mu        sync.Mutex
	b         *broadcaster
	file      File
	fs        FileSystem
	seekEnd   sizeOnce
	closeOnce onceWithErr
}
func New(name string) (*Stream, error) {
	return NewStream(name, StdFileSystem)
}
func NewStream(name string, fs FileSystem) (*Stream, error) {
	f, err := fs.Create(name)
	return newStream(f, fs), err
}