Store grabber used along with inetref to ensure correct reuse.

This stores the name of the grabber that returned an inetref, prepended
to the beginning of the inetref, separate by a colon (:). This is then
used to ensure that same grabber, or one that understands its indexing,
is called any time that inetref is used. This resolves an issue where an
inetref from the Television grabber would subsequently be used to pull
data through the Movie grabber, resulting in incorrect information.

This adds a caching mechanism for the grabbers, such that the available
grabbers do not need to be rescanned each time an inetref is to be used.
This cache is expired after 60 seconds, or any time the user enters the
metadata grabber selection screen.

Fixes #12149