feat: reverse virtualizer (#10258)
* add resize observer to virtualized items
* update chat stories
* update chat component with reverse virtualizer
* support reverse virtualization in list layout
* change isReversed to anchorTo end
* consolidate props/code
* fix layout from calling setVisibleRect
* format
* reverse items in Thread, update reverseBuildCollection
* add scroll anchor to chat
* remove scroll anchoring logic from list layout
* update chat stories
* cleanup from removing scroll anchoring logic from list layout
* listlayout cleanup
* add scroll anchoring
* separate out scroll context
* fix anchor reserve when submitting key for scroll anchoring
* fix tests
* remove key based scroll anchoring
* fix format
* fix lint
* fix type issue
* cleanup, fix non virtualized chat scrollToEnd button
* edit height of chat story
* code cleanup
* fix formatting
* hanle reverse in list layout
* fix streaming
* add/cleanup comments
* fix shift tab
* add support for async loading
* fix formatting
* fix loader y computation
* fix bug with snapping to bottom with loading older messages
* fix lint
* fix lint??
* add more browser tests for chat
* add reverse gridlist story
* simplify code, update comment
* fix lint?
* don't force top corners when anchoring reversed virtualizer scroll position
* make scroll anchoring more generic, pull out layout speicifc stuff from virtualizer
* fix formatting
* make loaders inline
* update comments
* update comment
* fix shifting when scrolling up
* cleanup from review comments
* fix lint?
* fix formatting
* update tests
* fix formatting fr
* move virtualizer scroll anchoring into scrollanchortracker
* fix formatting
* skip tests due to flakiness
* add scroll anchor tests
* fix formatting
* add dev warning for horizontal layouts
* strip out nonvirtualized chat
* skip browser tests in ci?
* cleanup
* fix lint?
* don't clear cache row heights on height only viewport resize
* add missing imports from merge
* fix lint
* move listlayout to ai package, reduce public surface area
* finish cleanup
* remove changes to tablelayout
* remove warning
* updates based on feedback
---------
Co-authored-by: Daniel Lu <dl1644@gmail.com>