support long polling with GetNWithTimeoutAndWait

This was the easy way to get things working in the Go library with long polling, but the API is starting to get unwieldy.  A better approach might be to create request objects, set parameters on them, and then call a `Do` method to actually do the work.  This is the pattern `http.Request` takes, for instance.