Fix path resolution to match vim behavior

- Resolve defined variables leaving others "as is"
- Merge ExpandEnvironmentVariables with ResolvePath
- Adjust filesystem unit test now that "~" always resolves