Split IDaemon and IServiceDaemon - the outer service daemon doesn't require a cancellation token but individual tasks do; first of a series of commits for supporting multi-daemon services.