Added functions pop_char and shift_char to StrBuf struct along with appropriate unit tests, using the same test case as push_char.

Changed StrBuf.shift_byte() that it no longer reallocates the buffer by just calling Vec.shift();

Added warning to shift_char()'s docs about it having to copy the whole buffer, as per the docs for
Vec.shift().
auto merge of #14052 : dylanbraithwaite/rust/char-fns-for-strbuf, r=alexcrichton

Added functions pop_char and shift_char to StrBuf along with unit tests, using the same test cases as push_char.