fix(btree): implement overflow pages per SQLite spec
Cell payloads exceeding max_local (U-35 for table leaves) now spill
to linked overflow pages. The read path reassembles the full payload
by following the overflow chain. This fixes crashes when large cells
(>50% of page) caused splits with insufficient room.
Key changes:
- encode_table_leaf_cell: writes overflow chain when P > max_local
- full_payload: reads overflow chain to reassemble data
- Cell.table_leaf: exposes payload_size for reassembly
- insert_into_leaf: handles degenerate single-cell splits
56 tests including SQLite spec vectors:
- Overflow threshold formulas (X, M, K) for all page sizes
- Boundary tests at exact max_local (4061 bytes for 4096 pages)
- Multi-page overflow chains
- All valid page sizes (512..65536)
- Record serial type codes, varint 9-byte encoding
- Stress test: 50 cells of increasing size with overflow + splits