addon/mg: Rework the Update All action logic for genericity

Instead of assuming that the currently visible options are all
upgradable (an assumption that proved true up to this day, but will not
in the next commit), go over them and make sure that their state truly
is ADDON_INSTALLED_UPGRADABLE.

This will allow Update All to work as intended on any view, and not just
those including upgradable add-ons only.
addon/mg: Include Update All on all views and enable it when applicable

This makes it so the Update All button appears on all views, disabled by
default unless there is at least one ADDON_INSTALLED_UPGRADABLE add-on.

The rationale for this is that with the Update Add-ons shortcut in the
Connect dialog gone, the possibility of upgrading installed add-ons is
not as visible as it was in versions 1.5.3 through 1.10.x. Making the
button visible at all times should hint at the existence of this
functionality.
addon/mg: Choose "update" vs. "install" terms when using Update All too

Previously the "update" terminology was only used when the Upgradable
view was the active view. Now that the Update All action may be
available on other views, we need to take care to use the correct terms
for it too.

This commit incurs in no changes to existing translatable strings.
Simplify --resolution error handling

Reuse the boost::program_options::error class (which we already catch in
main()) instead of throwing a std::string, and simplify the throwing
logic accordingly.

There is no need to provide incredibly verbose error messages since the
user is expected to be able to read --help or the man page to get here
in the first place.
Simplify tuple command line arguments error handling

Reuse the boost::program_options::error class (which we already catch in
main()) instead of throwing a std::string, and simplify the throwing
logic accordingly.

There is no need to provide incredibly verbose error messages since the
user is expected to be able to read --help or the man page to get here
in the first place.
Remove unneeded header inclusion

It seems somebody was using kdevelop for commit
f6b0ef01b7a412804bb37fb9499bf4395132b062.