MDL-34401 Add caching into get_plugin_list() function

This is quite frequently called function at most pages. The cache needs to be
invalidated only when a new plugin is installed or existing plugin uninstalled.
However, given how moodle_needs_upgrading() checks for new plugins, we need to
purge the cache there. Which is a shame because this means that the cache gets
purged in each cron call and when the admin looks at the front page and/or
system notifications page.
MDL-34401 Add caching into get_plugin_types() function

This is a simple MUC replacement for the previous static arrays.
MDL-34401 Replace static variables in pluginlib with ad-hoc request caches

Where the static variable was not really needed (as in case of arrays
defined by the hard-coded list of items), non-static variable is used as
I believe that there is no real performance gain.
MDL-34401 Replace ad-hoc plugin request caches with proper application caches

Data cached in these caches change only at well defined places (during
need for upgrade checks, at the plugin management screen etc). So it
makes sense to use proper application caches instead of request caches.

This saves couple of database queries at almost every page in Moodle.
MDL-34401 Cache the contents of version.php files

This saves many inclusions of version.php files.
MDL-34401 Add language strings for the new cache definitions