listbase: Tweak the rubberbanding implementation
Instead of updating the selection as we go, we instead want to use a private set implementation, set the :active state on widgets under the rubber, and only sync the selection at the end. That will let us use whatever set api is useful here without having to funnel it all through the public selection api, and will hopefully be more performant.