Issue #17435: Don't use mutable default values in Timer.

Patch by Denver Coneybeare with some test modifications by me.
diff --git a/Doc/library/threading.rst b/Doc/library/threading.rst
index f697cbb..1bcf0a2 100644
--- a/Doc/library/threading.rst
+++ b/Doc/library/threading.rst
@@ -839,10 +839,12 @@
    t.start() # after 30 seconds, "hello, world" will be printed
 
 
-.. class:: Timer(interval, function, args=[], kwargs={})
+.. class:: Timer(interval, function, args=None, kwargs=None)
 
    Create a timer that will run *function* with arguments *args* and  keyword
    arguments *kwargs*, after *interval* seconds have passed.
+   If *args* is None (the default) then an empty list will be used.
+   If *kwargs* is None (the default) then an empty dict will be used.
 
    .. versionchanged:: 3.3
       changed from a factory function to a class.