journal: rewind to datablock start, as qhead may be elsewhere

this reuses maximum amount of space after flush
journal: moved file-end detection inside the eviction loop

this fixes an issue when the end-of-file was encountered not before, but
during node eviction
journal: moved node descriptor wraparound from write_out to write_in

this is to guarantee that there is at least one vacant entry between the
qtail and the qhead
tests: iterate the ascending entry size twice