Fixed compile warnings & bugs in copy etc. when passed a pointer to sbuf->buff

1) Preprocessor removes tests that would give compile time warnings. These are
   there to test that string_buffer performs correctly when given dubious
   instructions, however the arising warnings can cause concern for users when
   compiling with GCC.  Clang does not give the same warnings.

2) Added _ensure_capacity_update_ptr to update a char *src if the buffer gets
   resized.

   e.g.
   strbuf_set(sbuf, "hello ");
   strbuf_insert(sbuf, sbuf->len, sbuf->buff, sbuf->len);
   // should now be "hello hello "
   // but if sbuf was resized, sbuf->buff is no-longer valid memory
   // need to update pointer sbuf->buff!

   This fixes potential bugs in:
   - strbuf_set
   - strbuf_append_strn
   - strbuf_copy
   - strbuf_insert
   - strbuf_overwrite