ResolveRelativePath Fixes

This PR builds on the work @lordoaty did in https://github.com/mono/MonoGame/pull/3073.

It adds fixes for unix-like systems and includes a unit test that hopefully covers the gamut of possible paths we can get.

Fixes https://github.com/mono/MonoGame/issues/3064.
Fixes https://github.com/mono/MonoGame/issues/3041.
> on a unix system this would be wrong.

Yea... not sure, but probably won't happen on a unix system anyway.

I based those last 7 on the `TitleContainer.Location = string.Empty` case of `TitleContainer`...
 
https://github.com/mono/MonoGame/blob/develop/MonoGame.Framework/TitleContainer.cs#L34

I have no clue when that case would occur.