Fix problem with mobility of internal index blocks.
As index blocks can change address if they are or become the first
block in the parent, we must not put too much weight on the first
address stored in an internal index block - it must always be treated
as the same as the address of that internal index block.
So pass around the current block's address where needed, and use it in
preference to the first address recorded in the block.