Remove conversion from capacity into add_cap

Instead of calculating additional capacity and checking that both this and
size don't have 1 as their most significant bit, we can just check that
capacity doesn't have 0 and size doesn't have 1 as their most significant
bit. Since this would imply that size > capacity.

This allows us to remove an addition and subtraction of a std::size_t. This
is a suggestion from nlyan.

Also I fixed some incorrect code that was looking at the wrong bits but
worked out anyway when size is small.
Merge branch 'master' of https://github.com/elliotgoodrich/SSO-23.git