add FileUtils::getNormalizePath and use in getNewFilename

You said `so that A//B, A/B/, A/./B and A/foo/../B all become A/B`, but it seems that it is not true, because it will return if it can not find `../`.