Implement PercentComplete for code update

In order to implement full task support for code update,
the PercentComplete property is added to the task service.

Testd: Validator passes.
curl -k -H "X-Auth-Token: $token" -X GET https://${bmc}/redfish/v1/TaskService/Tasks/0
{
  "@odata.id": "/redfish/v1/TaskService/Tasks/0",
  "@odata.type": "#Task.v1_4_3.Task",
  ... ...
  "PercentComplete": 100,
  "TaskMonitor": "/redfish/v1/TaskService/Tasks/0/Monitor",
  "TaskState": "Completed",
  "TaskStatus": "OK"
}

Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: I030bf0bbff098dec2f45158642f149711554285d
diff --git a/redfish-core/lib/task.hpp b/redfish-core/lib/task.hpp
index 19973d9..b6ca010 100644
--- a/redfish-core/lib/task.hpp
+++ b/redfish-core/lib/task.hpp
@@ -309,6 +309,7 @@
     std::optional<time_t> endTime;
     std::optional<Payload> payload;
     bool gave204 = false;
+    int percentComplete = 0;
 };
 
 } // namespace task
@@ -447,6 +448,7 @@
                 {"HttpHeaders", p.httpHeaders},
                 {"JsonBody", p.jsonBody.dump()}};
         }
+        asyncResp->res.jsonValue["PercentComplete"] = ptr->percentComplete;
     }
 };