For a call to mm_malloc(size), we must do some adjustments before looking for a free block.
- If size is too small increase it to the minimum size.
- Adjust the size to a new size, asize to take into account the header and footer words.
- Round up to the next multiple of the alignment requirement (multiple of 8).
The mm_malloc function calls find_fit(asize) with the adjusted size.
Use first fit to find a free block that is big enough (>=asize).
If no block is big enough, return NULL.
If NULL is returned, mm_malloc will have to increase the heap segment size.