hasChild treated any href that was not the collection as a share, so a
peer answering about an unrelated collection looked like it had shares.
Follow RFC 4918 §9.1 instead: the collection comes first and anything
after it is a member, with the first href counted only if it is itself
below the root.
Also accumulate href text across tokens; the XML decoder may split
character data, which the previous token-at-a-time check miscounted.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>