adding provisioner id to task apis. Taking or finishing a task

with a provisioner that does not exist will not be allowed.
Also refactoring to clean up code around the request by making
the requests actual objects instead of working directly with json.