CGE2: Fix the issue of loading sprites with changed _ref.

It fixes the problem with the multiply displayed Vulcanizer after giving him the glasses/basket ball, then saving and loading.
CGE2: Rework loading of sprites from file.

Now it satisfies the needs described in the last commit's TODO comment.
CGE2: Remove Spare::locate(char *file), since it's not used anymore.
CGE2: Rename _commandStat to _soundStat.
CGE2: Fix snSound().
CGE2: Fix error introduced by previous commit.
CGE2: Add and use Sound::checkSoundHandle().
CGE2: Change call order of checkSoundHandle().
CGE2: Unstub CommandHandler::runCommand().
CGE2: Reimplement checkSaySwitch().
CGE2: Implement switchMusic():
CGE2: Use nullptr instead of NULL in switchColorMode().
CGE2: Add and implement checkSounds() and checkMusicSwitch().
CGE2: Updgrade checkSaySwitch().

Now it takes into account the "Speech volume" option in the Launcher and it only plays the keyClick() sound if the button is really switched, not every time it's clicked.
CGE2: Add MidiPlayer::syncVolume() call to checkSounds().
CGE2: Keep music setting in sync with the Launcher.
CGE2: Increase readability of code connected to music switch.
CGE2: Move toolbar's functions from cge2_main.cpp to toolbar.cpp.
CGE2: Move inventory system's functions from cge2_main.cpp to inventory.cpp.