IncTimer should be the preferred mechanism over
calling `time.After` when wanting an `After`-like
function in a loop. This prevents memory build up
as the `time.After` method creates a new timer
instance every time it is called, and it is not
garbage collected until after it fires. Conversely,
IncTimer only uses one timer and correctly stops
the timer, clears its channel, and resets it
everytime that `After` is called.
New creates a new IncTimer and a done function.
IncTimer only uses one timer and correctly stops
the timer, clears the channel, and resets it every
time the `After` function is called.
WARNING: Concurrent use is not expected. The use
of this timer should be for only one goroutine.