Fix buffer overrun due to new sentinel value COLNO.

Also add an `isok` check to prevent this from happening again.
Fix a few stinking cloud bugs.

Prevent segfaults when a region is removed from a non-active level by checking
before calling `newsym`; also add a safety check to `newsym` to detect this in
the future. Don't remove expired regions when restoring a level; this can be
done perfectly well by `run_regions`. Clean up the blindness code to prevent
blindness from rapidly toggling while you're in a cloud.
Fix an incorrect direct call to `nh_get_options`

The curses wrapper needs to be used here instead, to ensure that the client's
options struct is returned when not in a game.
Update options menu when changing options in-game.

This is accomplished by taking advantage of the codepath in place for
`optstyle`: `query_new_key` signals that it needs the menu redrawn, and the
redrawing code now also fetches a new copy of the options from the game.
Merge remote-tracking branch 'l3france/l3france' into savebreak

Make some fly-by style changes too
Do not attempt to re-equip objects when restoring.

This step is unnecessary because the equipped/not-equipped status is 100%
restored now by the object code. This did, however, have a side effect of
clearing u.utwoweap.
Protect two `newsym` calls.
Delete an unused variable.
Clean up monster spit & breathe functions.

Merge two highly similar functions and clean up a memory leak while I'm here.

There is a very minor gameplay change here: a monster breathing/spitting at you
will no longer always interrupt you when you can't see the monster (but it will
interrupt you if it hits, in the part of the code that handles the hit).
Replace another static buffer with messages.
Fix another reindexing issue. Ugh.
Comment, whitespace and style fixes
Update changelog, history

These should now be up to date as of the current version.
Add missing older changelog entries

This goes back to 19 January 2014; there may be missing entries from
changes that are yet older.
Fix warning when saving bones with punishment ball wielded

The warning itself is mostly harmless, but there's no need to spook
players over nothing.
Adapt bones-with-punishment to the new equip code

Specifically, the ball and chain are tracked via utracked nowdays;
so if you leave bones while punished, there's no longer any specific
adjustment that's needed (we just leave the ball and chain on the
ground where we are, and the connection to the character's body will
die with the character).
Highlight lit light sources in object listings
Remove unused global var goldseen from mklev.c

Apparently it hasn't been used for anything since NetHack 3.0.0;
something to do with mimics and random gold piles.
Formal ID enchant armor scrolls used on dragon scales
Clean up the teleport code

(Adapted and expanded from DynaHack commit
5f60575dc7d4227a5a26a52049f27fbef5875ca9.)

Like the DynaHack change, this allows teleports to be cancelled in
the game engine (not yet tested, because the interface disallows
the cancelling). However, I thought I'd spotted a bug in the change,
and thus fixed it. Further investigation shows that it's actually a
vanilla bug (although more exploitable in DynaHack than in vanilla):
leashed pets are teleported to you when you press ^T, even if the
teleport is cancelled or fails due to the Mysterious Force or similar
shenanigans.

This fix also moves the failure message for being anchored by cursed-
leashed pets to after you've selected a destination, to prevent
free curse-testing of applied leashes in zero time via exploiting the
fact that they anchor the player.