Coder Tasks requires us to create a workspace, but we want to be able to return a `codersdk.Task` instead of a `codersdk.Workspace`. This requires untangling `createWorkspace` from directly writing to `http.ResponseWriter`.
This interface allows it to create rich codersdk errors and pass them up to the `wsbuilder` error handling.