Unicode paths on windows
As discussed in merge request !7 (closed) the support for unicode characters on windows is broken.
If compiling with UNICODE defined, we just truncate the UTF-16 encoded strings that we get from windows system calls.
But even if compiling without UNICODE we do not respect the ANSI encoding of the resulting strings anywhere else in the code. This could especially lead to problems when we try to append a user given string (through the GUI) which is encoded in UTF-8 to any of the paths.
Since this is a well known problem C++ has recently adapted the boost.filesystem library into C++17 and made it available through std::filesystem. But since there is no support for std::filesystem even on some of the newest compiler versions, and we do not want to include boost (I'm still in favor of doing that ;)), we have to come up with our own solution.
In my opinion it would be stupid to reinvent the wheel. We should just write our own version of std::filesystem::path with the same interface but limited functionality, so that at some point in the feature when all major compilers do have support for std::filesystem, we can just drop our own implementation in favor of the standard one.