Update the parser to work with `io.Reader` without reading all its contents before parsing. Things to help getting `rune` from `[]byte`: - https://golang.org/pkg/unicode/utf8/#FullRune - https://golang.org/pkg/unicode/utf8/#DecodeRune