bufio: change ReadSlice to match description

On error, ReadSlice is defined to return the available data
and advance past that data, but it was not behaving that
way for err == ErrBufferFull, making it harder for callers to
handle well.

R=r
CC=golang-dev
https://golang.org/cl/1480041
diff --git a/src/pkg/bufio/bufio_test.go b/src/pkg/bufio/bufio_test.go
index a19c46e..2279fe3 100644
--- a/src/pkg/bufio/bufio_test.go
+++ b/src/pkg/bufio/bufio_test.go
@@ -407,3 +407,15 @@
 		t.Errorf("WriteString wants %q gets %q", s, string(buf.Bytes()))
 	}
 }
+
+func TestBufferFull(t *testing.T) {
+	buf, _ := NewReaderSize(strings.NewReader("hello, world"), 5)
+	line, err := buf.ReadSlice(',')
+	if string(line) != "hello" || err != ErrBufferFull {
+		t.Errorf("first ReadSlice(,) = %q, %v", line, err)
+	}
+	line, err = buf.ReadSlice(',')
+	if string(line) != "," || err != nil {
+		t.Errorf("second ReadSlice(,) = %q, %v", line, err)
+	}
+}