timer handler, manage multiple Action objects,
calling them when required. The timer must be ticked by whatever controls
it, i.e. regular calls to tick() at whatever granularity suits your
application's needs. Alternatively you can call run(), and the timer will
tick itself, but this blocks so you gotta do it in a thread (remember
ruby's threads block on syscalls so that can suck).