First cut of the jscan utility. This will become the core utility for
scanning journaling files (e.g. as created by mountctl). The utility is
currently able to dump a journaling file in human readable format forwards
or backwards. It will eventually be capable of tracking and mirroring,
undo, security audits, partial restores, sanity checks, and other operations.
Most of the scanning infrastructure is in as of this commit, but the code
currently tries to cache the entire transaction into memory which will
fail for large (e.g. multi gigabyte) transactions. The API's are abstracted
with the intent of being able to page out or do on-the-fly mmaping of the
underlying data in the future rather then copying it into memory.