DebugReports: Define the APIs

debugreports API allow users to create log files in the server
for debugging and provide a way to check and access the log
files

Signed-off-by: Shu Ming <shuming@linux.vnet.ibm.com>
DebugReports: Add collection and Resource

Add the collection and resource class definition for DebugReports

Signed-off-by: Shu Ming <shuming@linux.vnet.ibm.com>
DebugReports: Implement the mock model

Emulating the debug log file creation process in mock model object and
adding more rest API test cases

Signed-off-by: Shu Ming <shuming@linux.vnet.ibm.com>
DebugReports: Implement the real backend

Implementing the real debug log files creation by distro specific commands
like 'sosreport' in Redhat Linux distros. The creation operation is
time-consuming and can block the other operations in the server, so async
task threads are used to execute the operations.

Signed-off-by: Shu Ming <shuming@linux.vnet.ibm.com>
DebugReports: Downloading the archives

Supporting the client to download the Debug Reports content from the server

Signed-off-by: Shu Ming <shuming@linux.vnet.ibm.com>