Added checker for paths which works on both Windows and Linux

This PR includes a checker that fixes path problems like OS-specific separators, case-sensitive files and symlinks.
This is added mostly for compatibility with both windows and linux.
err.Error() returns a string, there's no need to fmt.Sprintf it.