Adding CLI mode to GUI build. Moving code from MainNoGUI.cpp to CLI.cpp for this purpose.

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

Adding option to play a recording 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 savestate or recording 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 savestate version check when opening savestates.

Fix for wiimote playback when the gcpad has been recorded.

Writing OSD messages to logmanager too.