Fix wrong time interval calculation in Client.query

Network delays can be asymmetric, thus the response from the server can
correspond to any point in time between baseTime and replyTime. If it
does correspond to replyTime (ie. network latency for the request is
large, while network latency for the response is negligible), baseTime
actually corresponds to a time that's earlier than the beginning of the
interval returned by the server. If it corresponds to baseTime, baseTime
corresponds to the interval returned by the server. Thus the interval
returned from the server has to be broadened on the lower side only.

Change-Id: I6fab289a5daa8e3390f426172fa2b084b7c365fb
diff --git a/go/client/client.go b/go/client/client.go
index 19d6bf4..4a9db0b 100644
--- a/go/client/client.go
+++ b/go/client/client.go
@@ -304,13 +304,14 @@
 		Reply:         reply,
 	})
 
+	queryDurationBig := new(big.Int).SetInt64(int64(queryDuration/time.Microsecond))
 	bigRadius := new(big.Int).SetUint64(uint64(radius))
 	min := new(big.Int).SetUint64(midpoint)
 	min.Sub(min, bigRadius)
+	min.Sub(min, queryDurationBig)
 
 	max := new(big.Int).SetUint64(midpoint)
 	max.Add(max, bigRadius)
-	max.Add(max, new(big.Int).SetInt64(int64(queryDuration/time.Microsecond)))
 
 	return &timeSample{
 		server: server,