[addons] adds OnEnabled/OnDisabled callbacks to save special-case stuff in CAddonDatabase

NOTE: still actually special-cased as combined add-ons could be disabled (e.g. service+plugin, where plugin
      is disabled should disable service as well).
[addons] adds GetRunningInstance() to CAddon, retrieving the running instance of the particular add-on, to remove special-casing from CAddonManager for PVR clients
[cosmetic] drop using namespace PVR from AddonManager
[addons] adds CanInstall() to CAddon to allow for non-install of add-ons by type rather than special-casing for PVR in CRepository
[addons] adds OnPreInstall/OnPostInstall callbacks for add-ons to remove addon type-specific code from CAddonInstaller
[addons] adds OnPreUnInstall/OnPostUnInstall to CAddon to get rid of addon type-specific code in CAddonInstaller
Allow CStopWatch to be queried when stopped.
Refactor CStopWatch for inlinability.
Clean up ambiguous usages of CStopWatch.
Update CStopWatch::Stop test
ScraperParser::Clean: use "UTF-8" instead of GetSearchStringEncoding() as everything is converted to "UTF-8" on input.
[confluence] r.i.p. XBMC and move on.

Something homegrown, not name/brand related - Could signify the industrious work
undergoing and the change, and of course almost everyone likes gears.
Merge pull request #5023 from jmarshallnz/addon_reactions

Addon callbacks for special-case stuff
ARRAY_SIZE macro must handle expressions

X may be an expression. It must be evaluated before dereferencing.
Don't cast ARRAY_SIZE result to int.

Casting a size_t to an int is, uhm, yeah...
We have an ARRAY_SIZE macro, use it.
Squelch signed/unsigned comparison warning.
[pvr] fix wrong usage of SortsOnTop() which does not set the special
sorting
Merge pull request #5172 from xhaggi/pvr-fix-special-sorting

[pvr] fix wrong usage of SortsOnTop() which does not set the special sorting
fix CPlayerSelectionRule::CompileRegExp() after 8feb4defe8bbefb7393b925e3f2d6c0c40eef78f