core: callback_free_key shouldn't pass an already free'd value

In hashtable_remove_item(), hashtable_free_value() is called before hashtable_free_key(). It therefore seems wrong to have a pointer to the value as a callback_free_key function parameter.