SLEEP writer pass
Files:
inc/sleep_writer.h
src/sleep_writer.c
src/sleep_tree.c
Important change from the previous writer draft:
SLEEP/Dat root sets for a feed of N blocks use fullRoots(2*N), not fullRoots(2*(N-1)).
Thus N=83 produces roots 63, 143, 161, 164, matching the historical fixture's signatures.
The writer emits one signature for every feed length, 1..N.
The bitfield writer follows the documented 3328-byte SLEEP V2 layout. The historical fixture supplied with the project has a 3584-byte bitfield entry; the extra 256 bytes remain deliberately unresolved rather than guessed.
The code requires SLEEP_SALT/libsodium for cryptographic operation.