hfsplus: read/write journal support

This enables standard-conforming journaling of metadata operations on HFS+
volumes, with support for both replay and transaction. The journaling
infrastructure uses a collective write-through system, whereby dirtied pages
in a metadata operation (those involving b-trees & b-nodes) are queued together,
written to the journal, and subsequently synchronized. Synchronization is
carefully tracked (with *end_io() handlers) to minimize the need to replay the
journal on a live system, a potentially costly scenario.