This also fixes code running in `Update` which shouldn't be, by
consuming the new `NewItemsPresented` callback.
Fields and properties are renamed to knock some sense into things (was
previously called two or three different things).
This aims to bring some conformity to naming to make it easier to
understand component structure for new components.
Renames are pulled out of the song select v2 changes and are more
relevant there due to many new classes being added.
- `V2` suffix is dropped, with v2 components being moved to a relevant V2 namespace.
- Related classes have a prefix of the area they are used.
- Experimenting with using partial/nested classes in the song select v2 implementation.
Not committing to this yet but want to see how it plays out.
- Moved base carousel components to a generic namespace to avoid confusion with actual beatmap carousel implementation.
It's at a very simple stage for now:
- Tab control is no longer recreated when friends change, counts are
updated as bindables.
- All async logic removed temporarily.
- Sort and filtering happens in realtime without panel reload.
- Display modes removed for now. Need to think about this one a bit more,
and whether to retry the async path or look for a separate solution.
- Real time user presence is now considered. Not considered for sorting
by last visit time yet.