Fixes critical bug identified by Zephyre_Review: event handlers used
global jQuery selectors instead of container-scoped selectors, causing
potential event handler leaks and scope mismatches.
- requestAnimationFrame batching: rerenderRpgState() now batches all
render calls into a single animation frame, reducing reflow/repaint costs
- Lightweight change detection: Render functions use updateIfChanged() to
skip DOM updates when content hasn't changed, and only re-bind event
handlers when the DOM was actually updated
- CSS content-visibility: Added content-visibility: auto with
contain-intrinsic-size to inventory and equipment containers, deferring
rendering of off-screen content
New file: src/systems/rendering/renderUtils.js (rendering utilities module)
Updated: All render modules + sillytavern.js integration + style.css