Store run configuration file name in the run configuration.

This will be necessary for chaining multiple injection-based patches together. And it's a one-liner change, yay.

On the other hand, this gets us even further away from run configuration stacking. Well, gotta wait for the GUI configuration tool to see how and whether we need this.
Add a macro for the most common StringToUTF16 use case.
strings_vsprintf(): Don't replace the pointer if realloc() failed.
Use the new json_pack() string concatenation syntax introduced in Jansson 2.5.
thcrap_inject(): Determine the DLL directory using GetModuleFileNameU().

Necessary for chained injection, where the directory of a process executable may no longer be the same as the directory that contains thcrap.dll.
thcrap_inject(): Determine the DLL name using GetModuleHandleEx().

Not only does this get rid of the #ifdef, it also allows the DLL to be renamed without changing the source code.
Add json_array_from_wchar_array().

Not too happy about either naming or placement... but well, that code appeared in both the loader and the configuration tool, so it deserved to get its own function.

Putting it into win32_utf8, returning a char**, would have been the alternative, but that has to be recursively freed, so I decided against it. GetCommandLine() and CommandLineToArgvW() are basically the same.