Adding config path argument

because that allow easier benchmark for different settings
Writing file name in file error

because that makes it easier to locate the problem
Adding state version check when loading state

because it should be checked before boot
Loading log settings for CLI

because that allow disabling logs for CLI
Logging to OutputDebugString when the process is not debugged too

because the message can be read in DebugView which can be more efficient than reading it in the program's log window

Writing OSD messages to LogManager too because that make the message (f.e. about state version)

* permanent (for future reference) rather than temporary
* visible to CLI mode if it occurs before window creation
Adding data to movie

because that allow determining

* type: GC and Wii input order
* frame count: synchronisation
Removing an emulated Wii input tick count use

and an unsaved state value

because that make Wii input equally deterministic as GC input
Changing the emulated Wii input update from 200 Hz to `VideoInterface::TargetRefreshRate`

because there isn't an indication that a Wii program read the input status more frequently
Synchronising dual threaded movie input with frame drawing instead of a tick interval

because that makes recording more deterministic