make ExampleDaemon use an actual worker thread

This is much more realistic: in the original example,
only the command reading loop (in the generic daemon library
code) was actually running.  All "real" daemons will have
one or more threads that represent the ongoing work.