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.
never used externally, make it private? 

also, if it's gonna stay public the caller shouldn't need to pass in kind, since it'll always be the host os kind.