correct iterator construction & memory deallocs

 - utf8_char_advance now works for 1-byte sequences
 - added destructor to utf8_string_t
 - utf8_string_t constructors all add null-terminator
 - utf8_string_t::iterator now constructs correctly
way better memory-management for utf8_string_t

 - imem_quantize_capacity now uses a better algorithm
 - operator = () now actually present... oops!
 - constructors now defer to a single constructor