Improve the wait.Poll GoDoc and api

Add more tests, and allow maxAttempts to be zero to wait forever

@brendandburns addressing your comments from yesterday
>To do polling, the interval is important, and the max timeout is important, and that you get called at least once at the end. I was assuming that the number of times you actually poll is less important than that max timeout. 

If that's the model, that's fine-- but then I think the interface should be two time.Durations, the between cycle time and the timeout time. I think the interface currently gives the wrong impression about the implementation.