fixes of Timer implememtation:

    1. don't loop infinetly when delay <= 0
    2. clean-up after timer with repeatCount == 0 finishes
    3. no more than 1 event per frame