Timestamp incoming and Wait for everything InFlight to drain/error

Using a WaitGroup may be a little heavy handed, but I don't think
it will be too bad. Plus anything I could roll myself would likely be
less performant.
Read() should increment waitgroup to avoid race

Also clean up a few things to make it more obvious what is going on.
Merge pull request #7 from heroku/timestamp_wait

Timestamp wait