New Issue: I/O module: replacing ioChar with writeCodepoint etc

20257, "mppf", "I/O module: replacing ioChar with writeCodepoint etc", "2022-07-19T19:43:22Z"

This issue is about this IO module type

record ioChar {
  /* The codepoint value */
  var ch:int(32);
}

Currently, this type can be used with read/write/<~> to read or write a particular Unicode codepoint.

The proposal here is to deprecate this type in favor of the following new routines which are more obvious:

// note: all of these routines will ignore the channel’s Encoder/Decoder

proc writer.writeCodepoint(codepoint: int) throws
proc reader.readCodepoint(): int throws
proc writer.writeByte(byte: uint(8)) throws
proc reader.readByte(): uint(8) throws

These are a bit redundant with writeBytes/writeString etc. but would perform much better. (But, that could be less important if we have the short-string optimization #11221).