Improved layout animation batching

Rewrote the animateLayout system to use batched commits on a shared projection tree, improving performance when multiple layout animations occur simultaneously. Added comprehensive test cases covering various animation scenarios including fire-and-forget calls, parallel animations, and data-layout attribute handling.