There are some cases where we need to allocate an extra terminator node
even when last_block == blocks - 1. This occurs when each leaf is
completely filled out (i.e., blocks is a sum of powers of 2 greater than
or equal to BLIST_BMAP_RADIX) but "blocks" is smaller than "radix".
While here, add an explicit check for the blocks == 0 case, which
is otherwise invalid and not handled properly.