Fix for absolute and foreign relative paths in Compile.Include for "already exists" tests against csproj

Fixed up relative path building to use built-in algorithm which is more robust. This resolves an issue where relative paths pointing in a peer tree to the project.csproj would cause the server to rewrite csproj's with absolute paths that were missing the volume char (at least on Windows).

Also added direct support for absolute paths stored in the csproj's in case there are any of those.
The old version of the code and the test did not check foreign relative paths and absolute paths. I fixed the code to support this, and updated the test as well.

Maybe my commit message was confusing. What I meant was that if you run this test on the old code, it fails, because it exposes the limitation in the csproj handling. If you run it on the new code (with my fixes) then it succeeds.