Workflow basic api

Create the basic workflow API. Can @ascandaroli and @pfracarolli take a quick look? It has problems, I just want to make sure I find all problems and create issues for them.