Autoexplore: Lead player back over thrown objects

Autoexplore now leads the player back over to objects that have been
thrown or fired by them, making ammo management when autoexploring a
little easier.  This means that fired objects in lit areas will be
picked up again when autoexploring; those that land in dark areas might
not be, depending on how explored the surrounding dark spaces are.

This is meant to go with commit a06d1c831d (CS906 autoexplore: prefer
exploring items).
Autoexplore: Prevent revisiting entrance stairs

Without this fix, autoexplore would move a few spaces off the stairs
when entering a new level, then move right back onto them and stop
autoexploring, preventing autoexplore from really working until its key
was pressed twice.  This change allows autoexplore to work on a level
right away.

This is meant to go with commit 59e3420890 (autoexplore to and stop on
stairs/dungeon features).
Fix monsters blocking sight after genocide

Without this fix, monsters that block sight, e.g. giant mimics mimicking
boulders and giant turtles, continue to do so even after being
genocided.

Compared to previous efforts, this fix does not unblock sight if
something else on the genocided monster's space would still block sight,
e.g. giant mimic on top of a real boulder.

This replaces commit 2f9436cd82 (fix sight-blocking geno'd mimics not
unblocking) and commit e869cac4b6 (fix giant turtles blocking sight
after genocide).

This bug also exists in vanilla NetHack (for giant mimics).

This bug also exists in UnNetHack (for giant turtles too).
Autoexplore: Don't autoexplore onto statues

... unless another item is seen or remembered to be there as well.

Statues are almost always uninteresting by themselves, and are commonly
used to decorate rooms and special levels, so this change should reduce
the number of times that autoexplore leads the player to and stops on
them.

This is meant to go with commit 621c5ffedd (CS747,748,765,768,815
autoexplore from NetHack4).
Fix blind punishment bugs in layered memory system

This adapts the display code for the ball and chain when blind and
punished to NitroHack's new layered memory display, fixing a number of
issues:

 * Object stack inverse video remaining after a felt ball/chain moved
   off a remembered object.

 * Extra object info, e.g. monster info for statues, stack inverse flag,
   not being properly set for an object after a ball/chain was dragged
   over it.

 * Unfelt ball/chain on another object printing the wrong info when
   far-looked, e.g. newt statue with an unfelt chain on it would claim
   to be a giant ant statue instead.

The idea behind the ball and chain code while blind is that the ball and
chain objects override remembered objects on the spaces they occupy, but
keep track of the object they overrided.  When the player knows they've
moved far enough away that the ball/chain has moved, the ball/chain is
removed from the now-obsolete position, and the remembered object memory
of that space is restored.

In NetHack, this system works fine because it remembers whatever glyph
was drawn when the ball/chain moves over a space.  In NitroHack, the
ball/chain overwrites the object, but neglects to save other object info
like monster IDs associated with monster-like objects such as statues.

NitroHack also uses vobj_at() in its textual description of objects from
afar, which returns level->objects[x][y] (INVISIBLE_OBJECTS is not
defined) without considering that an unfelt ball or chain could be at
that position too, which this commit also fixes.

This is meant to go with commit fee7233eb9 (port layered location memory
from SLASH'EM) and commit 644c88b3e7 (CS377,513 multiple items on floor
in inverse video).

This bug also exists in upstream NitroHack.
Suggest #wipe when blinded by venom or cream pie

Like the #monster and #sit suggestions when polymorphed, this suggestion
only appears if the 'verbose' option is enabled.  Given how rare it is
for this command is useful, and how useful the command is when it is
useful, it's strange that NetHack doesn't suggest it already.
Restore quest monster gen list in correct order

The monster generation override list is a linked list.  Before this fix,
this list was being restored in reverse order, which could lead to
different monsters being randomly generated on such levels during a
replay in periods played in odd-numbered play sessions.

This kind of replay bug affects anything that restores linked lists that
determine game behavior based on their order.  In fact, I think NetHack4
fixed exactly this kind of issue with traps, which hasn't been ported to
this development branch yet.

This is meant to go with commit a6d902114c (CS448 lev comp: unhardcode
quest mon gen from SporkHack) and commit 1501d6f120 (lev comp: simplify
mon gen save/restore code).

This fixes #13.