Fix get_many_to_many_counts pagination with fetch N+1
Same issue as the get_many_to_many cursor fix in the previous commit,
but simpler: the counts endpoint groups by subject so each subject
appears exactly once, meaning a subject-only cursor is sufficient.
The only problem was that when items.len() == limit, the code couldn't
distinguish "exactly limit items exist" from "more items exist but we
stopped at limit", causing a false cursor on the final page.
Fix: accumulate limit+1 items, only emit a cursor when more than limit
exist, then truncate. Applied to both MemStorage (take N+1 in the
iterator chain) and RocksDB (allow one extra group in the BTreeMap,
pop it before building results).