Do not reallocate on sizehint to same size (#49703)
The sizehint! code currently do not reallocate when sizehinting to a smaller
size if 1/8th or fewer elements will be freed. However, the check rounds down,
so an array of size e.g. 3 resized to size 3 will "free" 1/8th of the elements,
namely zero elements, needlessly resizing.
This commit changes the check to only reallocate if MORE than 1/8th of elements
will be freed.