Os-Agnostic Path Handling

I though all the slash and backslash handling all of the place was ugly. So I created OsPath to be os-agnostic, actually it simply detects the type of path.

Initially I had OsPath as storage type on RemotePathMapping but that was a bit tricky on the UI. But I left the OsPathConverter in case we want to add it transparently to the db in the future. It isn't used though.

Anyway, this PR is to get some feedback, I didn't look over it yet, so don't go all wild on code-standard stuff :)

I'm considering we should be using this anywhere were we actually use a path. Lemme know what you think.
Sorry, nope.

```var test = System.IO.Path.Combine(@"C:\Test\", @"C:\Test2\"); ```
Results in ```test``` = ```C:\Test2\```