Fix some IO sequencing performance issues and reformulate the strategy
we use to deal with potential buffer cache deadlocks. Generally speaking
try to remove roadblocks in the vn_strategy() path.
* Remove buf->b_tid (HAMMER no longer needs it)
* Replace IO_NOWDRAIN with IO_NOBWILL, requesting that bwillwrite() not
be called. Used by VN to try to avoid deadlocking. Remove B_NOWDRAIN.
* No longer block in bwrite() or getblk() when we have a lot of dirty
buffers. getblk() in particular needs to be callable by filesystems
to drain dirty buffers and we don't want to deadlock.
* Improve bwillwrite() by having it wake up the buffer flusher at 1/2 the
dirty buffer limit but not block, and then block if the limit is reached.
This should smooth out flushes during heavy filesystem activity.