desktop_util: Code cleanups for the Win32 path

 * Define UNICODE, so we don't need to call ShellExecuteW explicitly.
 * Use utils::string_to_wstring (which uses a different but still
   compatible result value type) instead of our own local version.