Fix dec_slice_packed_bool when bools are inefficiently encoded.

This doesn't occur in practice, but was discovered by gofuzz
(reported in #76).
diff --git a/proto/decode.go b/proto/decode.go
index 8486635..5810782 100644
--- a/proto/decode.go
+++ b/proto/decode.go
@@ -597,9 +597,13 @@
 		return err
 	}
 	nb := int(nn) // number of bytes of encoded bools
+	fin := o.index + nb
+	if fin < o.index {
+		return errOverflow
+	}
 
 	y := *v
-	for i := 0; i < nb; i++ {
+	for o.index < fin {
 		u, err := p.valDec(o)
 		if err != nil {
 			return err