MB-12855 Return IO errors via btreeblk_end

btreeblk_end() may fail while trying to write dirty btreeblocks
to disk (if disk is full).
If this failure does not result in failure of the
user function, then subsequent forestdb operations can crash
or abort in unpredictable ways.
Fix is to propogate the error to caller via pathways such as
wal_flush() and wal_commit() which try to do disk I/O
+ Anomaly test suite altered to reproduce this issue reliably
Change-Id: I15d4832fb7f5be6398ef7f5b2da7a9df15473f8c