daemon tasks now actually run continuously

before, each daemon task was called only on startup and never again
not sure how we never noticed this before, or perhaps I was hallucinating that it worked before?

issue was that the new thread should have run DaemonTask.run()
.run() runs in a loop every X seconds, and calls the correct callback function

what was happening instead was we had the thread call the callback function ONCE and then exit,
resulting in the daemon task only running when you first started cherrypy,
and never running again (not very daemon-like).

I think this is the right fix except HOW DID WE NEVER NOTICE THIS BEFORE? 

Eli, could definitely use a careful code review here

fixes #336