Two main pieces to this:
* A new JournalPointer object that stores two journal
inodes so that we can do a double-buffered update,
followed by an atomic swap.
* An extended recovery process in MDLog that dereferences
the JournalPointer and conditionally rewrites the
journal to accomodate format updates.
The JournalPointer indirection should also be useful for
making cephfs-journal-tool do updates more safely.
Signed-off-by: John Spray <john.spray@inktank.com>