harpoonctl refactor

This is just a cleanup PR, and lays the groundwork for more workflows (scheduler, etc.)