Split TodoService into smaller specialized services

The following discussion from !180737 (merged) should be addressed:


The TodoService class has grown into a too large service that bears too many responsibilities. It should be refactored into smaller contained services (eg a TodoResolveService for resolving to-dos).