HAMMER - Rework write pipelining
* Rework write pipelining so it is based on pending direct writes on an
inode-by-inode basis. ip->rsv_recs and hmp->rsv_recs are now
decremented after the direct has completed rather then when the sync
code has processed the record.
This fixes serious buffer cache overloading when doing linear writes.
* Implement write clustering or bawrite() calls based on a filesystem
block getting filled up instead of relying on the buffer cache's bdwrite()
to keep ahead of the mark.
* vfs.hammer.cluster_enable now effects both read and write clustering.