Stdio.Buffer: fix unread()
The documentation promises that unread() will always succeed until new
data is added to the buffer. This contract was broken when the new
growth strategy was added by commit 2c4241823. That commit added a
possible trim to every read operation, which would try to shrink the
buffer and make a future unread() fail.
Also, the max_waste check contained a typo, which made it always
This issue does not affect rewind keys.