Initial commit of ODWY0501/.

This is a work in progress. I started with ODWY0350; replaced
the travel table, objects, and vocabulary; replaced the listen()
routine with getwds() (which is currently instrumented with
debugging printfs); and ripped out almost all of the ODWY0350
game logic, since I know a good fraction of it will need to be
reimplemented anyway.

The program compiles and runs, and you can move around following
the travel table, but no verbs are implemented so you can't
GET anything or even LOOK. (But you can QUIT!)
Continue working on ODWY0501.

Fixed some travel-table bugs (R_LOW, R_ORIENTAL, R_HOUSE, R_ROAD).
Debugged the location flags F_LIGHTED, F_OUTSIDE, and F_PORTAL.
Fixed some bugs in getwds().
Completely implemented the verbs LOOK and READ.
Continue working on ODWY0501.

Implemented the weight() and burden() functions.
Completely implemented the verbs LOCK, UNLOCK, and OPEN.

Lastly, verified the tangle of inventory functions: where Woods
had "merely" carry/drop/move/juggle/toting/here/there/is_at_loc,
Long adds enclosed/holding/at_hand/remove_from_containers.
Continue working on ODWY0501.

Implemented the verbs TAKE, YANK, INSERT, REMOVE, WEAR, and FILL.
This includes fixing a lot of original bugs in Long's FILL and
INSERT logic.

Cleaned up some getwds() logic. It seems that Long broke Woods'
original logic for CRAWL WEST, etc.; I've decided to restore it.
Also it looks like Long got his new ENTER/EXIT test backwards,
or something, so that ENTER HOUSE does work but then so does
WEST HOUSE.
Continue working on ODWY0501.

Add (untested) handlers for R_CLAY, R_PHUCE, R_GNOME,
and R_KALEIDOSCOPE.
Continue working on ODWY0501: BREAK and room descriptions.

Implemented the verb BREAK and the transitive versions of
YANK/WEAR/INSERT/REMOVE/BURN (which just required refactoring).
Some of the above-ground room descriptions have changed, too,
to mention the pantry and the outdoor billboard.
Continue working on ODWY0501: CLOSE and POUR.

Implemented the verbs CLOSE and POUR.

Tracked down the exact cause of the "cask full of cave drawings"
bug I'd observed in Long's version, explained it in comments, and
patched it.

Implemented Easter eggs for strange places the sapphire could be.
(This breaks from my "originalist" goal, but after patching so
many bugs in Long's original code, I figure I'm making more of
a "reimplementation" than a "port" at this point, and I deserve
to have a little fun here and there.)
Continue working on ODWY0501: verb EAT.

Implemented the verb EAT. Investigated several amusing bugs
related to the Alice puzzle; for example, it's possible to strand
yourself in R_CRAMPED without any inventory or items in the room
with you, by vanishing the key into the chest-in-bottle-in-chest
and then eating the cakes, or of course by vanishing the cakes
to begin with.

Implemented forbidden_to_pirate(), and cleaned up some movement
and pseudo-movement stuff. Dwarves and pirate are still largely
unimplemented.

Investigated the behavior of the word "LIGHT" as a verb and noun.
I believe I know what the program is doing, but I haven't figured
out how it corresponds to the source code!
Continue working on ODWY0501: verbs DRINK and RUB.

Fixed a bunch of Long's bugs with DRINK.
Refactored the "doff dropped items" code into a single place.
Continue working on ODWY0501: DROP, INVENTORY, and SCORE.
Continue working on ODWY0501: HIT, KILL, FEED, TOSS...

Implemented the interlocking verbs HIT, KILL, TOSS, FEED.
Implemented FIND.

Also, refactored all "move(X, R_LIMBO)" calls into "destroy(X)",
which will properly empty destroyed containers and reset the
prop value of the uncaged BIRD when necessary.
Better solution for indentation; verb LIGHT; getwds() fixes.

I've ripped out the indent_if_needed() routine and replaced it
with something closer to how I hope this will work on the
Z-machine (with compiler support, that is). I've now got a
global function set_indentation(x) that indents all output
by x spaces; this is done by re-#defining "puts" to a routine
of my own. I've made sure that "printf" never needs to be
redefined in this way, because THAT would get ugly!

My TODO comment about a possible off-by-one bug in getwds()
was right on the money. "GET LAMP AND SACK" would trigger
the response "What?" instead of properly dealing with the
two-object command. This is now fixed.
Fix some original bugs in DROP.

DROP ROD would not correctly disambiguate if you were toting the
rusty-marked rod inside a container. Not that that's possible
(since there are no general-purpose containers in the endgame);
but might as well be consistent.

DROP WATER would behave incorrectly if both bottle and cask were
full of water, but only the cask were toted. (It would redirect
to DROP BOTTLE and give the response "You aren't carrying it!")

Also use move(obj, loc) instead of drop(obj, loc); the latter
assert-fails if obj is toted inside a container.
Cosmetic: Remove trailing whitespace.
Continue working on ODWY0501: verbs BRIEF, TERSE, DIAGNOSE.

Implemented more of the "main loop" logic: the cameo event
that gives you the magic word PHUCE, the "chased by Wumpus"
messages, and death by radiation poisoning.

Verbs BRIEF/UNBRIEF and TERSE/UNTERSE, with accompanying logic
in look_around().

Verb DIAGNOSE, and the supporting global variable "health".
Continue working on ODWY0501: safe-cracking.

Implement the verbs 7, 22, 34 (collectively "COMBO").
This incantation works just like FEE, FIE, FOE, FOO.

Initially place the rare book in the safe. This has to be
done with an explicit call to insert(), since the book is
created before the safe.

Fix the indentation logic. I had foolishly used puts("")
to mean "indent N spaces prior to printing something with
printf", which of course doesn't work because puts() adds
a newline! So now I've replaced that throughout with a new
function indent_appropriately(). It's still called much less
often than my old indent_if_needed().
Continue working on ODWY0501: verbs FEE FIE FOE FOO (and FUM).

This logic is almost an exact copy of the COMBO logic.
Unfortunately the two functions attempt_{feefie,combo} are
different enough that there's not much point in trying to
combine them.
Continue working on ODWY0501: SWEEP, BLAST, clocks.

Long's game adds a third clock to Woods' two. The third
clock counts down a random number of turns (between 20 and 40)
when you're in the repository; at the end of that timer the
phone begins to ring, and seven turns later the dwarves are
awakened by the noise --- game over.

I've removed the wizmode commands WIZ, MAP, GATE, and PIRLOC;
these are implemented in MCDO0551 but WIZ's implementation
is commented out so that there is no way to get into wizmode.
This means that all MAP, GATE, and PIRLOC will do is print
"OK" (that is, what they do outside of wizmode).
Continue working on ODWY0501: verbs EXTINGUISH and WAVE.

Also some more Wumpus stuff and cave-closing stuff.

I've noticed that Long's "close the cave" logic is identical
to Woods', except that Long also closes the elfin door. (He
forgets to lock it, but I've fixed that.) Long doesn't kill
the sleeping dog or the chattering gnome. But then, Woods
didn't kill the dragon either, so I guess that's okay.
Remove debugging printfs from "getwds.c".

The game is now basically playable, although it's still missing
a couple of large pieces, such as dwarf movement and attacking.