wat iter-2: chars + 27 string/char primitives
Char type added (tag=6, 8 bytes). Reader handles #\char and named chars
(space, newline, tab, return, null). Chars self-evaluate in eval, render
via print_value, compare via equal_p.
Primitives added (IDs 61-87):
string-length, string-ref (returns char), substring, string-append,
string=?, string<?, string-upcase, string-downcase, string->list,
list->string, string->symbol, symbol->string, make-string,
char?, char->integer, integer->char,
char-alphabetic?, char-numeric?, char-whitespace?,
char-upcase, char-downcase, char=?, char<?,
number->string, string->number,
string-contains, string-join
Plus helpers: substring_op, string_append_op (variadic),
string_lt, string_case_op, string_to_list, list_to_string,
symbol_to_string, make_string_filled, number_to_string,
string_to_number, string_contains_p, string_join_op,
bytes_eq_s, read_char_literal.
39/39 wasm tests pass (20 unit + 8 integration + 11 functional).