Add bounds checking on abc::text::codepoint_iterator, share code with abc::str_base::operator[]()