Update zedmon lib for new gousb.

Gousb now uses contexts for cancellation and timeouts.

Change-Id: I2c560abf76127d158fdb5eea1adcbb0193ed6321
diff --git a/lib/zedmon.go b/lib/zedmon.go
index 25e14e0..755aaf0 100644
--- a/lib/zedmon.go
+++ b/lib/zedmon.go
@@ -30,6 +30,7 @@
 
 import (
 	"bytes"
+	"context"
 	"encoding/binary"
 	"fmt"
 	"log"
@@ -89,8 +90,10 @@
 }
 
 func (z *Zedmon) read() []byte {
+	ctx, done := context.WithTimeout(context.Background(), time.Second)
+	defer done()
 	buf := make([]byte, z.inEp.Desc.MaxPacketSize)
-	len, err := z.readStream.Read(buf)
+	len, err := z.readStream.ReadContext(ctx, buf)
 	if err != nil {
 		log.Printf("Read stream error: %v", err)
 		return nil
@@ -104,8 +107,10 @@
 // successive invocations.  Repeating a get format report command until we
 // get a response synchronizes them.
 func (z *Zedmon) sync() {
-	z.inEp.Timeout = time.Millisecond * 100
 	for {
+		ctx, done := context.WithTimeout(context.Background(), time.Millisecond*100)
+		defer done()
+
 		data := make([]byte, 2)
 		data[0] = 0x00
 		data[1] = 0x00
@@ -115,7 +120,7 @@
 			continue
 		}
 		buf := make([]byte, z.inEp.Desc.MaxPacketSize)
-		_, err = z.inEp.Read(buf)
+		_, err = z.inEp.ReadContext(ctx, buf)
 		if err == nil {
 			break
 		}
@@ -390,7 +395,6 @@
 
 	zedmon.sync()
 
-	zedmon.inEp.Timeout = time.Second * 1
 	zedmon.readStream, err = zedmon.inEp.NewStream(zedmon.inEp.Desc.MaxPacketSize, 100)
 	if err != nil {
 		zedmon.Close()