added a periodic worker

The periodic worker will call a function periodically based on an input duration
we tend to use LongWait for failure cases -- ShortWait is actually correct here, because we need it to fail before the period's elapsed, but it *looks* like an error. Maybe an explicit `var longEnoughToFireOnce`, defined next to the period, might be good?