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
I'm going to argue that's a feature instead of a bug.  I *expect* most users have an idea of how long they want to wait before their polling is done.  I *think* they know that their operations take an implicit amount of time, and that logically the total time should be "interval times number of iterations + time to do last request".  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 poll is less important than that max timeout.  If that's the contract people write to, then we have the flexibility to offer more sophisticated timeout of individual condition checking in the future.  If you give us an insane poll period and cycles (below the level the OS allows) then the contract still holds.