First steps in order to remove some duplicated code that is used to find the 7z or 7za executable programs. Additionally, in several places some cases aren't taken into account: when there's only a 7za executable, when there's only a 7z executable, and when there's not a 7z nor 7za executable.
In that commit: move a member function and two objects to a more general class.
Those changes are related to https://phabricator.kde.org/D28417 and https://phabricator.kde.org/D28418