This PR improves cross-platform compatibility.
It solves two main issues:
1. inconsistent line endings
2. inconsistent path separators
Path separators, in installer, needs to target two different
environments:
1. the OS where the installer runs
2. the OS where the injected files been used
This PR unified path separators used in 2 to be UNIX path separators,
while in 1 to be platform-dependant.
Ref: https://forum.golangbridge.org/t/filepath-join-or-path-join/13479
Known issues:
The spawn processes, including etcd.exe, kube-apiserver.exe,
and openshift-installer.exe, will not exit once installation
aborted or completed. Users need to manually terminate those
processes in task manager.