- don't print shared references to cprims, and estimate their
size better. previously you could get output like this:
```
(#0=#\a
#0#)
```
Now it looks like:
```
(#\a #\a)
```
- print `#\ ` and `#\newline` instead of `#\space` and `#\linefeed`.
these seem to be more standard.
- add io.ungetc and string.isutf8
- maintain input order in delete-duplicates
- error for unicode escapes greater than 0x10ffff
- make more builtins constant (use setc instead of set)
- use prog1 in begin0 macro
- array-ref was incorrectly called array-ref! in aliases.scm
- use (void) instead of () in 0-arg C functions
- don't do arithmetic with void*