Fixed str::raw::push_byte

It was previously pushing the byte on top of the string's null
terminator. I added a test to make sure it doesn't break in the future.