Notify is a convenience function that initializes a new Notifier
with the given condition, interval, and countdown.
It is the responsibility of the caller to call close to stop polling.
type Condition func(now time.Time) (deadline time.Time, callback func())
Condition is a function that gets executed with a certain time.
It should return the deadline for the notification, as well as a
callback function to execute once the time to the deadline is
less than one of the notify attempts. If deadline is the zero
time, callback will not be executed.
Callback is executed once for every time the difference between deadline
and the current time is less than an element of countdown.
To enforce a minimum interval between consecutive callbacks, truncate
the returned deadline to the minimum interval.