Declare an instance of SeqLock by supplying header([H]) and value([T]) types,
which should be configured with C-style layout & alignment.
The value T can optionally include the sequence param as its first field (HAS_INLINE_SEQUENCE).
If you choose not to do that, SeqLock will place a u32 atomic sequence number
in between the header and value, in a VMO, shifting the value payload by SEQUENCE_SIZE.
Byte size to use when incrementally writing out T in [set_value()]. Determined
by the params in T.
Four -> write in u32 chunks.
Eight -> write in u64 chunks, although the first 8 bytes may be two u32s (one
of which is the sequence).