Make DeferFunctionCall return a boolean.
Add IterateModules method.
Make DeferFunctionCall part of AddonObject.
Rename timer to RepeatingTimer. Consistency is key!
Store timers by name rather than handle.

This simplifies stopping timers and removes local value creation when creating a timer to store it's handle. Note that if no name is provided then name defaults to "DefaultTimer" with handle appended to the  end.
Update StartTimer in Tests to pass a timer name parameter.
Remove string "DefaultTimer" from the timer name variable.

This will use the tables address instead by default. Also add back a return value.