Reworked selection infrastructure to support reporting version changes for particular lookup methods. For this to work, all raw lookups in the selection tables need to be passed through an accessor method. Independent of this, the old implementation for runTime selection could be modernized to use unique_ptr for the memory management instead of the clunkier manual deletion mechanisms.
The result is a slightly cleaner calling interface, but it is also possible to continue with table-based lookups as before. Does not break existing code APIs, but is not ABI identical.