Split out a `Workflow` trait
This trait can be used to provide methods that service implementations can call in order to actually perform the workflow bits. This will allow a single hosting implementation to handle both the Do:
-based workflow and an automatic workflow where testing and staging occur based on commit statuses automatically. It involves quite a bit of refactoring of the repository and may naturally support being split into a separate crates (ghostflow-reaction
? ghostflow-handlers
? Merge back into ghostflow
itself?).
Cc: @brad.king