This PR improves the rendering performance of the Settings UI window by using `gpui::list` to render only the visible contents of a settings page, instead of rendering the full content of a page. This fixes a lag that the editor page has in debug builds. I also added a new field `measuring_behavior` to `ListState` that has `Visible` and `Measured` variances. `Visible` only measures and caches the bounds of visible items plus the overdraw pixel offset. `Measure` will cache all items’ bounds on the first layout phase, which fixes problems with the scrollbar size/position being miscalculated. Release Notes: - N/A --------- Co-authored-by: Mikayla Maki <mikayla@zed.dev> Co-authored-by: Ben Kunkle <ben@zed.dev>