Simplify amdllpc initialization code
Simplify amdllpc initialization code

-  Fix a potential null pointer dereference when trying to destroy an uninitialized compiler.
-  Use early returns to simplify initialization control flow.
-  Use llvm::ScopeExit to perform cleanup in both 'success' and 'failure' cases.

GPUOpen-Drivers/llpc,GPUOpen-Drivers/llpc,GPUOpen-Drivers/llpc,GPUOpen-Drivers/llpc,GPUOpen-Drivers/llpc