Turns out that items could be in an order that isn't the same as how
things look on the carousel, so this change ensures that for testing
purposes they are sorted by Y position.
Also uses the `CarouselItem.Visible` flag to ensure that we don't have
to wait for drawable fade transitions after a filter operation.
From a user's perspective, changing a sort / order mode shouldn't filter
away results, but we were doing this.
In terms of UX expectations, in stable this kind of scenario would
results in a group being added to the end of son select with "Not
ranked" or "Unknown". I think we should aim to match this eventually.
As pointed out in review, if the current time is after the end of the
slider, the correct hit object to use for sample retrieval is the object
itself, not any nested object.
- It is entirely derived from `SkinLayoutInfo.DrawableInfo`, which is
the actual primary thing we want to serialise.
- It will never get read out from any serialised files anyway (corollary
of the previous point - it is a get-only property derived from another).
- It is only used in tests.
All of the three reasons above make serialising the property out to skin
files nothing more than a waste of space.