HAMMER VFS - Implement async I/O for double-buffer strategy case
* When vfs.hammer.double_buffer is enabled the HAMMER strategy code
was running synchronously. This creates numerous problems including
extra stalls when read-ahead is issued.
* Use the new breadcb() function to allow nominal double_buffer strategy
operations to run asynchronously. Essentially the original buffer and
CRC is recorded in the device bio and the copyback is made in the
callback.
* This improves performance vfs.hammer.double_buffer is enabled.