Don't limit block rewrites to the last half of the file, if we can make
things better, do so.

Don't try and rewrite blocks if there aren't any available blocks, that
can happen if the compaction trigger is small enough in comparison to
the blocks available.

Fix a bug where we'd NOT skip the block on error.