HAMMER VFS - REDO implementation base code part 2/many
* Move hammer_generate_redo() to its own source file, hammer_redo.c
* Fix bug in the REDO generation. The tail type was not set the same
as the head type and caused recoveries to fail.
* Flesh out the REDO sequencing by adding REDO_TERM_* records during the
meta-data flush, allowing REDO_WRITEs and REDO_TRUNCs to be matched
against REDO_TERM_WRITEs and REDO_TERM_TRUNCs.
* Interlock the writing of the root volume in the flusher. Frontend
code modifies the root volume when generating REDO records and
can collide with the flusher.