environment: move object_creation_mode into repo_config_values
The global variable 'object_creation_mode' controls how Git creates
object files, specifically determining whether to use hardlinks or
renames when moving temporary files into the object database. Move
it into 'struct repo_config_values' to continue the libification
effort.
Move the 'enum object_creation_mode' definition higher up in
'environment.h' to ensure it is visible to the structure. Initialize
the per-repository value to its default macro value
OBJECT_CREATION_MODE inside 'repo_config_values_init()'.
Update configuration parsing in 'git_default_core_config()' to write
directly to the repository-specific configuration structure.
Mentored-by: Christian Couder <redacted> Mentored-by: Ayush Chandekar <redacted> Mentored-by: Olamide Caleb Bello <redacted> Signed-off-by: Tian Yuchen <redacted> Signed-off-by: Junio C Hamano <redacted>