+Unicode changes:
+
+1. toggle UTF-8
+
+ Add utf8 as a toggle option and store in the nat_flags field in
+ nation structure. In the future, this should be a login option
+ rather than a country toggle once the login options are added.
+
+2. flash and wall
+
+ a. Message as command argument
+
+ Interpret raw command line as message text rather than normal
+ text.
+
+ b. Multi-line mode
+
+ Read message lines as message text rather than normal text.
+
+ c. Break long lines
+
+ Count the charactes using utf8 format. This works for both ASCII
+ and UTF8 formatted strings.
+
+ d. Print lines
+
+ Print as message text rather than normal text.
+
+3. Telexes and telex-like things
+
+ a. read and wire, MOTD and gamedown message
+
+ Print as message text rather than normal text.
+
+ c. tele, anno, pray, turn.
+
+ Read as message text rather than normal text.
+
+4. Input filtering
+
+ a. Parsing commands (normal text)
+
+ Ignore control and non-ASCII characters when copying argument
+ strings.
+
+ b. Reading normal text command arguments
+
+ Replace control and non-ASCII characters, except for tab with
+ "?'.
+
+ c. Reading message text command arguments
+
+ Support message text arguments, used by 3a. and 2b. Replace
+ control and, if NF_UTF8 is off, non-ASCII characters.
+
+5. Output filtering
+
+ Output filtering asssumes that there are no control characters or
+ invalid characters in the output messages. The control characters
+ and invalid characters are filtered out during input filtering or
+ that the server will not generate control characters or invalid
+ characters.
+
+ a. Printing normal text
+
+ When NF_UTF8 is on, highlighted text is printed using SO/SI.
+
+ b. Printing message text
+
+ When NF_UTF8 is off, replace UTF8 charactes with '?'.
+
+
+Definitions:
+
+1. Normal Text
+ For normal text, the following ASCII characters are valid:
+ CR, LF and 0x20-0x7e. Normally, LF is an termination action
+ event. Normally, CR is not used except by the server.
+ Normal Text does not support UTF8 characters. In normal
+ text, the 8th bit is used a highlight bit. If the client
+ has the utf8 nation flag set, the standout bit is removed
+ and the highlight block is prefixed with SO (ASCII standout)
+ and suffixed with SI (ASCII standin).
+
+2. Message Text
+ For message text, the following ASCII characters are valid:
+ Tab, CR, LF and 0x020-0x7e. Normally, LF is an termination
+ action event. Normally, CR is not used except by the server.
+ Message text also supports UTF8 characters if the utf8 nation
+ flag is turn on otherwise only the ASCII characters are
+ supported.
+
+
+Notes:
+
+1. Strings that considered message text are commented.
+
+2. Both Normal and Message text are char strings are in the server.
+ Care needs to be taken as some compiler consider char
+ signed and other default to unsigned char.
+
+3. Unicode functions are prefixed with u.