void * extend_heap(size_t nwords)
param: nwords - number of 4 byte words
Description: Allocates a new free block of size which is a
multiple of 8 immediately after the last block. Merges
this new block with the last block if that block is free.
Rewrites an eiplog block after the new block.
Return: pointer to the new free block (NOT yet in the linked
list or tree of free blocks)