* fix: skip page extraction when operation count exceeds 1M
Vector-heavy architectural PDFs can have 10-26M path operators per page,
causing ~60 GB allocation during per-op processing. The decode itself is
tolerable but the subsequent loop amplifies memory 2-5x with text items,
rects, paths, and state tracking.
Check operation count after Content::decode() and return empty extraction
for pages exceeding the limit, with a warning log.
* test: add unit test for excessive operations guard
Constructs a synthetic PDF with 1.1M path operators to verify
that pages exceeding the operation limit return empty extraction.