CS642: lev_comp: SporkHack r670-671

WALLWALK coordinate translation is fixed.

Map character variables and arrays are now supported by preceding a
character with 'TERRAIN:' when assigning such values.

WALLWALK can now accept map character variables.

Bugs with the length of OBJECT and MONSTER array variables have been
fixed.

Compared to UnNetHack, this removes a double-free from the SP_M_V_NAME
case of spo_monster(), which is also fixed in the latest version of
UnNetHack, but from which changeset I can't tell.

Since mapchar is actually used in the level compiler grammar, the number
of warnings from it is down from 14 to 10 with this change.
CS643: lev_comp:Let ENGRAVING take string variable

According to UnNetHack, this is from SporkHack r675.
CS644: lev_comp: Change OBJECT fmt, allow as vars

OBJECTs are now represented as either an object class character or a
parenthesized comma-separated class character and object name.
Statements that took these as separate arguments now take them as one,
e.g.

    OBJECT: '?',"genocide", random

becomes

    OBJECT: ('?',"genocide"), random

Statements that take objects can now take object variables as well.

Many quest 'monsters' gain the following objects for their inventories:

    Archaelogist
        Lord Carnavon
            +5 fedora
            random +4 weapon
            3 random objects
        Minion of Huhetotl
            3 random cursed objects
    Barbarian
        Thoth Amon
            random +2 weapon
            random armor
            3 random objects
    Caveman
        Shaman Karnov
            random +6 armor
            random +6 weapon
        Chromatic Dragon
            5 random objects
    Healer
        Hippocrates
            4 random wands
            2 random scrolls
            +4 silver dagger
        Cyclops
            random +3 armor
    Knight
        King Arthur
            +4 long sword
            random +3 armor
        Ixoth
            2 random scrolls
    Priest
        Arch Priest
            +4 robe
            4 random scrolls
            2 random spellbooks
        Nalzok
            random +6 weapon
            random +3 armor
    Ranger
        Orion
            +4 leather armor
            +4 yumi
            50 +4 arrows
        Scorpius
            6 random objects
    Rogue
        Master of Thieves
            random armor
            random weapon
            5 random potions
        Master Assassin
            random armor
            random weapon
            random scroll
            random potion
    Samurai
        Lord Sato
            +4 splint mail
            +4 katana
            random scroll
        Ashikaga Takauji
            splint mail
    Tourist
        Twoflower
            6 random objects
        Master of Thieves
            random armor
            random weapon
            4 random potions
    Valkyrie
        Norn
            random armor
            random weapon
            2 random scrolls
        Lord Surtur
            random armor
            random weapon
            2 random objects
    Wizard
        Neferet the Green
            2 random wands
            2 random scrolls
            random armor
        The Dark One
            random wand
            random scroll
            random spellbook
            random armor
    Croesus (in Fort Ludios)
        random armor

According to UnNetHack, this is from SporkHack r678.