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.
I would like @markus101  opinion on this. Should we ignore the trailing slash in comparisons.
Should we compare the (exact) path, or the file system item it points to?
```C:\test``` an ```C:\test\``` essentially point to the same filesystem object. So it depends on whether you look at paths or what it would mean on the filesystem.

Personally I'm not sure if we should consider them the same.