func NewRawStream(conn net.Conn) Stream {
	return &rawStream{
		conn: conn,
		in:   json.NewDecoder(conn),
	}
}
NewRawStream returns a Stream built on top of a net.Conn.
The messages are sent with no wrapping, and rely on json decode consistency
to determine message boundaries.
package jsonrpc2
import (
	"bufio"
	"context"
	"encoding/json"
	"fmt"
	"io"
	"net"
	"strconv"
	"strings"
)
type Stream interface {
	Read(context.Context) (Message, int64, error)
	Write(context.Context, Message) (int64, error)
	Close() error
}
type Framer func(conn net.Conn) Stream