feat: fix sheets print off-by-one, add PDF export, remove dead code (#251, #240, #269, #270)
- Fix print off-by-one: last row/column no longer excluded (< → <=)
- Add PDF export to sheets via html2pdf.js with toolbar button
- Remove unused virtual-scroll module, types, and tests
- Add E2E tests for complex docs editing and sheets print
- Refactor printSheet() into buildPrintData()/buildPrintOptions() for reuse