Add a util.Forever variant that ends on a stop channel

Integration tests that want to run controllers today are putting controllers into
infinite loops with go util.Forever.  util.Until will allow test cases to stop a controller
after a test ends
every `period`?