Add token count caching
Cache token counts to avoid O(n) rescans on each message update. Scope: state.py and token_counter integration.
Acceptance Criteria
Token count is recomputed only when message content changes; cached values are reused on subsequent updates; no new type errors.