func NewRecorder(filename string, initial []byte) (*Recorder, error) {
	p, err := proxy.ForRecording(filename, 0, "", "")
	if err != nil {
		return nil, err
	}
	p.Initial = initial
	return &Recorder{proxy: p}, nil
}
NewRecorder creates a recorder that writes to filename. The file will
also store initial state that can be retrieved to configure replay.

You must call Close on the Recorder to ensure that all data is written.
package httpreplay
import (
	"net/http"
	"net/url"
	"github.com/google/go-replayers/httpreplay/internal/proxy"
)
type Recorder struct {
	proxy   *proxy.Proxy
	port    int
	initial []byte
	cert    string
	key     string
}
type recorderOption func(*Recorder)