Refactor consumers to move logic up to calling function
The idea is to move the communication logic across the various actors (consumers, processors, producers) up to the caller level, the cmd
function (as much as it's possible).
Also, starting to use dedicated structs to pass messages around channels, instead of Marshalling to json /before/ processing.
Some code refactoring has been done, as well as tests fixing to match with the new signatures.