HAMMER 12/many - buffer cache sync, buffer cache interactions, misc fixes.
As of this commit all vnops work, the filesystem remains consistent across
umount/remount, and the 'cpdup / /mnt/root' test succeeds. There is still
a ton of work to do but this is a major milestone.
* Get sync and umount working properly. Properly sync out in-memory records
and inode updates, and properly release buffer cache buffers so the
kernel can throw them away.
* Modifications to buffers backed by the buffer cache ensure that any
asynchronous writes complete to avoid a modify-write race.
* Fix miscellanious reference counting bugs.
* Fix two insertion bugs for internal B-Tree nodes that were causing the
code to blow up.