func NewContext(content []byte) context {
	c := context{remainingLines: strings.Replace(string(content), "\r", "", -1)}
	c.Increment()
	return c
}
NewContext creates a context from the provided data. It strips out all
carriage returns and moves to the first line (if available).
package validate
import (
	"strings"
)
type context struct {
	currentLine    string
	remainingLines string
	lineNumber     int
}
func (c *context) Increment() {
	if c.currentLine == "" && c.remainingLines == "" {
		return
	}
	lines := strings.SplitN(c.remainingLines, "\n", 2)
	c.currentLine = lines[0]
	if len(lines) == 2 {
		c.remainingLines = lines[1]
	} else {
		c.remainingLines = ""
	}
	c.lineNumber++
}