Fix alias depth limit tracking in resolve_aliases
The depth limit was not being enforced correctly because anchors
were registered with already-resolved nodes. When processing
`b: &b [*a, *a]`, the code would:
1. Resolve all members first (expanding *a at depth 0)
2. Register anchor "b" with the fully-resolved content
This meant alias chains like `result -> *e -> *d -> *c -> *b -> *a`
would find pre-resolved data at each step, so the depth counter
never accumulated.
The fix registers anchors with the original (unresolved) node
BEFORE resolving members. Now each expand_alias call resolves
the original unresolved node at incremented depth, properly
triggering the depth limit for billion laughs protection.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>