Cosmetic: Clean up the used_movement_*() code.

In my last commit, I accidentally introduced a routine used_movement_obj()
that was a duplicate of the existing used_movement_objword(). These names
are much too long anyway; I've renamed them to movement{,v,o,p}(),
following the same model as keyword{,v,o,p}().
Revert Knuth's changes to the original dwarf-knife-throwing messages.

My port's knife-related messages now (except for capitalization) match
the messages given in WOOD0350/.
Add missing blank lines before printing the score in finis().

This omission was particularly noticeable if your game was ended
unexpectedly by the grey-clothed wizard.
Add macros for customizing line length.

Instead of hard-coding all newlines with "\n" (to match the original
programs' line breaks exactly), I've replaced all line-wrapping
newlines with the macro SOFT_NL. Lines broken by a hyphen have been
categorized as SOFT_HYPHEN (e.g., "infor-mation") or HARD_HYPHEN
(e.g., "hard-earned"). Line-breaks which do not wrap lines (for example,
the line breaks in your inventory listing, or listing items in the
room with you, or Platt's many "shaped" messages) are left as "\n".

If you want the text to use the full width of your interpreter window,
replace these definitions:

   #define SOFT_NL "\n"
   #define SOFT_HYPHEN "-\n"
   #define HARD_HYPHEN "-\n"

with these:

   #define SOFT_NL " "
   #define SOFT_HYPHEN
   #define HARD_HYPHEN "-"

I could have done this for Parchment or Z_MACHINE targets in general,
but actually I prefer the current look, even in Parchment. However,
since the change might be useful to other consumers of the code, I'm
checking it in anyway.
Implement UTF-8 output in putc().

After this change, it's actually possible to print UTF-8 strings
in the natural way. My compiler optimizations already bail out in
the presence of non-ASCII bytes, which means we never try to "print"
a string containing multibyte characters. Such strings always go
through the "cstubs.c" versions of printf() and puts(), which delegate
the printing to "stubs.inf"'s version of putc().

In this revision, I've changed putc() to collect non-ASCII bytes
and concatenate them according to the UTF-8 rules, then print out
whole codepoints using the Z-machine's "@print_unicode" opcode.

Linux Frotz has trouble with non-ASCII Unicode characters, but
Fizmo and Parchment both work fine. There is a @check_unicode
opcode that reports whether a given codepoint is handled by the
interpreter (see www.firthworks.com/roger/informfaq/aa20.html), but
I don't see any sensible way to use that feature at this low level.
If we find that a character isn't handled, what do we replace it
with?

My Adventure ports don't use UTF-8 functionality yet, but they're
about to.
Make the puts/printf optimization understand UTF-8.

Before this revision, embedded multibyte characters would
disable printf/puts optimization. After this revision, those
character sequences are recognized as UTF-8 and compiled into
appropriate "@print_unicode" opcodes.

The library changes in commit 809bbf7c are still necessary,
for the benefit of puts/printf calls whose arguments are not
string literals.
Add a macro for EMDASH.

The macro EMDASH("--") can be set to expand to either "--"
or U+2014 "EM DASH", depending on your target system. Right now
I've set it to expand to "--", to preserve Woods' and Platt's
original ASCII formatting, but on Parchment a true em dash looks
much better.