Adding CLI mode to GUI build etc.

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
Loading log settings for CLI

because that allow disabling logs for CLI
Ignoring bad state events

because that might allow the state to load
Adding config path argument

because that allow easier benchmark for different settings