CS1436: Ensure "Elbereth" status is always updated

The duplicated init for was_on_elbereth is ugly, but there doesn't seem
to be any one function for both starting and restoring games that runs
after level is init'd, otherwise I'd have used it for the fix to the
notify_levelchange() on restore bug too.
NH4: Use more portable Unicode characters for map

 * 'black square' for open doors
 * 'plus-minus sign' for trees and dead trees
 * 'pilcrow' for fountains (easier to see than 'top-half integral')
 * don't use 'dagger' for grave
 * 'double cross' for webs
 * vertical/horizontal rule for swallowing/explosions instead of eighth
   blocks

Change the characters we use to ones that render portably
<ais523@nethack4.org>
524a57f9bb0072d35123523b3ab869816e09a480
oprops: Merge properties regardless of known-ness

... and merge the known properties correctly.

Without this fix, when several arrows of (unknown) fire miss and then
hit a monster, the ones that hit would have the fire property
identified, but not the ones that missed, and would thus not stack, even
if they were obviously originally from the same stack.

This does lead to players magically knowing the properties of a newly
found object if it stacks with an existing object with matching
properties that are known, but that's a quirk I can live with.
NH4: Fix fruit chain restoring in reverse order

Yet another source of replay warnings.  Problem spotted Sean Hunt, but
this uses an original fix since the NetHack4 fix is faulty.

Fix a number of save/replay consistency bugs
Sean Hunt <scshunt@csclub.uwaterloo.ca>
acf2e2f4f27f90ba6745bba7003d1e325c97abe4
NH4: Restore old options as intended after replay

If program_state.viewing or program_state.game_running aren't unset by
the time replay_end() is called, the nh_set_option() calls within it
won't restore the game options saved from before the replay as they
should.

Fix a number of save/replay consistency bugs
Sean Hunt <scshunt@csclub.uwaterloo.ca>
acf2e2f4f27f90ba6745bba7003d1e325c97abe4
Fix (war)horse appearing as a pony when ridden

Looks like horses and warhorses have their mnum set to pony for some
reason, which display_self() was all too happy to use.  Using monsndx()
makes them appear as they should when being ridden.

See also commit 2cc8a319e1 (level genocide treats chameleons like normal
geno), which also shows a difference between using mtmp->mnum and
monsndx(mtmp->data) for shape changers.

This bug also exists in upstream NitroHack and NetHack4.
Ensure max engraving length is within BUFSZ

This prevents overzealous memory allocation by newengr() if a bad length
is saved or restored for an engraving.
Fix engravings list restoring in reverse order

Yet another source of replay warnings.

This bug also exists in upstream NitroHack and NetHack4.
Interrupt running/travel/autoexplore when confused

Running, travel and autoexplore don't count as occupations, so the call
to nomul() in stop_occupation() never happens for them without this fix.

Reported by Janis Papanagnou on rec.games.roguelike.nethack:

    http://bilious.alt.org/rgrn/?128555

> An IMO flaw in Nethack is that if you travel with the '_' command and
> an umber hulk confuses you, the game continues with the travel command
> execution instead of aborting it. That way it may be disastrous if you
> travel on Medusa's level and a newly created random umber hulk appears,
> leading you straight into the water without possibility to just stop.
> If, OTOH, you do a command repetition '.', waiting for, say, blindness
> or confusion to wear off, this will be interrupted.

This bug also exists in vanilla NetHack, UnNetHack, upstream NitroHack,
NetHack4, and probably pretty much every other NetHack variant ever.

Fixes #81 on GitHub.