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.
A create operation must be done using the POST method while update operations must be done using PUT requests.
A successful POST request must return a 201 status code and must include an HTTP header named "Location" with the URL to the resource just created.
A successful PUT request must return 200 and *could* return the body of the updated resource.