http://golang.org/pkg/bufio/#SplitFunc says
"SplitFunc can return (0, nil) to signal the Scanner to read more data into the
slice and try again with a longer slice starting at the same point in the input.",
but SplitFunc returns 3 values (advance int, token []byte, err error).
It should be "SplitFunc can return (0, nil, nil) ..."?