Fix an inaccuracy in the level-making docs.

Randarts have been allowed in monspecs since 0.11-a0-270-g333634f.
Normalise whitespace in the level-making docs.
Revert "De-mimicify Orc:$ shops."

This reverts commit ab2ad4d442a7ff675788df525e6d7d1ef004e72c.

After some discussion on ##crawl-dev, there seemed to be agreement that while
mimics exist, there's no reason to exclude them from places like this as they
can generate in other branch ends just fine, and the whole point of such mimics
is to have a chance of replacing what would otherwise be real loot.
A couple of minor vault/layout hiccup fixes.

layout_twisted_woods had an unnecessary duplicate KMONS line in the
Crypt case specifically.

mu_elemental_laboratory's bosses left corpses with unnecessarily verbose
descriptions ("elf corpse of deep elf elementalist"); they've been
tagged with n_noc to fit with their kin and leave generic corpses now.

The diamond obelisk in kilobyte_diamond_obelisk uses the actual monster
definition again; this was originally done in 5733cd6 but accidentally
reverted in 0a212af (making it entirely my fault).
Remove plants from Forest random monster list.

Turns out layout_twisted_forest places a fair amount of plants on its
own; combined with plant clumping, I'm satisfied that the amount of
plants after this is adequate without being annoying.
Fix an Ozocubu's refrigeration crash.

cast_los_attack_spell needs to make sure the actors it is trying to affect
are still alive when it gets to them. Actually applies to Ozocubu's
refrigeration, drain life, and Olgreb's toxic radiance. Ozocubu's was just
the most likely source of crashes.
Fix a crash related to LRD, noise, and permarock.

Some spells (e.g. dig and Lee's Rapid Deconstruction (LRD)) can be used
on the very edge of the level (permarock/open sea/lava sea). This is by
design. LRD can use permarock to make explosions, but cannot destroy it.

The bolt class wanted these spells to cause noise, and it was attempting
to center the noise on the border tile, which is technically
out-of-bounds. Because the noise code did not check for out of bounds
positions, the bolt class was successful.

When the resulting noise disturbed a monster, the out-of-bounds sound's
out-of-bounds location would be passed to behaviour_event through its
src_pos argument, triggering this assertion:
    "ASSERT(in_bounds(src_pos) || src_pos.origin());".

Changes:
1. Added an assertion in noisy in sound.cc to ensure that all sounds
are in-bounds.
2. Made these spells only generate noises in-bounds. If a noise needs
to be generated out-of-bounds, it will instead be generated nearby, but
in-bounds.

Maybe this messes things up by changing who can hear the sound in certain
situations?
New mcros ASSERT_IN_BOUNDS{,_OR_ORIGIN}().

These print the out-of-bounds coordinate as part of the assertion
message.
Don't let (berserker) monsters uselessly spam Trog's Hand.

There was no check for if the spell had already been cast when
considering whether to cast the spell, causing monsters to spam it
unintentionally.
Be more consistent about Beogh conversion criteria (#7180)

If the priest was out of LOS but within LOS radius, you could get
the "press a Y" message without actually having the Beogh light.
Conversely, you could get the light but no message if you were
invisible to the priest.

Now the following criteria must hold to get either the status light
or the speech and message:

 * The priest must not be silenced.
 * You must be able to see the priest.
 * The priest must be able to see you. Glass is fine.

Furthermore, you won't get the status light (but will still get
the message) if you are silenced but the priest is not.

The priest's current behaviour also affects whether you will get the "a
Y" message.  If it's already seeking you (because of noise for example)
you won't get the message; this makes sense for the preaching speech,
but the a Y message should probably happen when you first get the
light as well.

I still worry the message might be too easy to miss, but I don't think
it's worth a default force_more.
Fix useless/bad classification of rings of sustenance and hunger.

They're useless for djinn, and temp useless for foodless forms.
For vampires, hunger is _not_ strictly bad, as it allows getting
undead resistances much faster when needed.
Tweak to some inventory prompts with auto_list

Print the prompt before showing the menu, instead of after. Doesn't
matter for other versions, but in WebTiles menus aren't fullscreen.
Add MSG_OK when canceling for various prompts

Also in a couple of cases add other messages. The goal here is to always
print something when a prompt is dealt with.
Don't require password for config.autologin
Remove a few lines of unused code
Allow ETC_* feature colours to affect some displayed tiles.

Right now, this operates for floors, rock walls, and stone walls; if
some other colour really needs to be impacted, this code can probably be
extended to suit.

Yes, this means that pan_disco_hall now works in tiles!!!
Unbreak non-tiles compilation.
Fix lobby being outdated after watching someone
Don't crash on ETC-coloured features.
Don't crash on player distort weapon banishment

This simply doesn't generate noise for banishing hits, because the
monster position gets lost. Perhaps a better fix is in order.