Now our MS.Build.dll behaves like MS.Build.Engine.dll, replace \ with / at expansion time for everything.

Some MSBuild targets premises \ to work just like a path separator, and they
cannot be logically distinguished from any possible "normal" use of '\'.
(Except for escaped strings, which is why this change replaces \ with / after
expanding strings.)

I have added another override for NormalizeFilePath() and rather renamed old
one that works as file lookup, but there is no obvious difference in use.
They may be unified later to bring less confusion.