void * coalesce(void * bp);
param: bp - Points to a free block; not on the linked list (or
tree) of free blocks.
Description: Removes adjacent blocks from the free list (or
tree) if either one or both are free. Merges block bp
with these free adjacent blocks.
Return: pointer to the merged block; also this block is NOT yet
in the linked list or tree of free blocks.