Is the word "usable" here meant to imply that one can freely transmute to a larger size without registering it with the allocator?  Or is it something where you still need to call `realloc`, but you can use `usable_size` to first ensure that the call to `realloc` is guaranteed to be very cheap?