Implements T51087 (Improve keyboard usage for spacebar search menu).
Enables scrolling over the beginning or end of search results. Additionally supports PageUp and PageDown keys.
Previously a first iteration was used to determine total amount of items and the position of a preselected item, before a second iteration would display the relevant slice of items. Now the logic to the determine the relevant slice is inside the add item function and can be applied during the first iteration.
Overall the behaviour is otherwise the same as in 2.79 and on master, with the exception of the operator search menu (F3). It is the only implementation without underlying data, that still keeps track of the previous selection. Because the filter string does not have to match exactly the selection, it is possible to keep track of the filter string and the selection as distinct values. This means the filter string can stay the same even after selecting different items multiple times.