Adding CLI mode to GUI build etc.

Moving code from MainNoGUI.cpp to CLI.cpp for this purpose

Adding option to open a state or movie. (A movie could previously be started but not through open)

Adding option to play a movie as a benchmark by running it without a frame limit and measure the frame rate. The feature is accessible from the CLI

When opening a state or movie the ISO is selected by ID. (The ScanDirectoryTreeRecursive code is moved from GameListCtrl to FileUtil for that reason)

Fix: Don't show BrowseForDirectory if no ISO is set, instead disable the Play and Start Recording options

The BootManager is changed to try; the default iso, the last iso, if an empty string is provided. (Code is moved from FrameTools to BootManager for that reason.) If a file is not found it tries the path with the ISO path(s) prefixed (so that the file path can be relative to a library path)

Logging to OutputDebugString when the process is not debugged too because the messages can be of interest then too

Changing the nogui suffix to cli because it's a more common term
Adding config path argument

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

because that makes it easier to locate the problem
Adding savestate version check when opening savestates

Writing OSD messages to logmanager too because that makes its messages (f.e. about state version) visible to CLI before a window is created
Loading log settings for CLI

because that allow disabling logs for CLI
Making the GC and Wii input order deterministic

because that allow recording both GC and Wii input