fix UbSystem::makeDirectory() for Linux
Description of the Issue: The current implementation of UbSystem::makeDirectory() in our codebase encounters a problem when creating directories with subfolders on Linux systems. It fails to create the necessary parent directories before creating the target directory, resulting in an incomplete directory structure. This issue has been identified and addressed in the proposed changes.
Changes Proposed: Modify the UbSystem::makeDirectory() function to include the logic for creating the parent directories if they don't already exist before creating the target directory. Update the relevant documentation and comments to reflect the changes made.
Testing: Thoroughly tested the modified UbSystem::makeDirectory() function on Linux systems to ensure the correct creation of directories with subfolders.