Removed repeated calculation of character length in StrBuf.pop_char().

Changed StrBuf.shift_byte() and shift_char() so that they no longer reallocate the buffer;
shift_byte() just calls Vec.shift(), but shift_char() has to copy memory manually as it may have to
shift multiple bytes.

Added warning to shift_char()'s docs about it having to copy the whole buffer, as per the docs for
Vec.shift().