Commands

Fixes #42 

I still need to add more Command+Consumer specific tests, but this has so many changes in it I'd prefer to merge this ASAP.
Im fine with cleaning up this logic.  I hated that it ended up being two code paths and it felt like there was a way to share the same channel in watch's run-loop.   But I didn't see a replacement for it in this commit.   Currently this block fetches any tasks created before the coordinator has started up,without it tasks submitted while all coordinators are down will be orphaned.