journal: Store entry timestamps as 32-bit offsets to the head entry
Reduces the size of the entry object by 8 bytes. To make this work,
we initialize the header head entry timestamps a little earlier so
that the entry timestamps are always calculated correctly. A side
effect is that if we fail to append the head entry, the head entry
timestamps will be "wrong" but the same already happens for the
head entry seqnum so this doesn't seem like a big issue.