loadConfig
Loads configuration from the properties file at the specified path.
If the file doesn't exist:
The parent directory is created if necessary
A new properties file is created
Default values from the factory are written to the file
If the file exists but is missing keys:
Missing keys are added with their default values
The file is updated
Return
A new Config instance with the loaded properties.