Add best fit handling
Make realloc return NULL and free if size==0