Reimplement timers to be light weight - Timer is now a struct instead of an interface.
Add support for passing delegates with arguments to runTask - allows to pass parameters to tasks without causing GC allocations.