Remove consum_desc

There's no reason for potions & scrolls to use plus to store
appearance when everything else uses 'appearance'. (Also, there's
no reason for scrolls to use two fields, since it all gets mashed
into one int anyway.)
appearance -> subtype_rnd

For clarity.

And make books not use it, since they don't get named/coloured
consistently anyway. (They... may have been broken before this?
name-wise)
Debuggify books (9127)
Fix save compat (9126)

Don't turn all weapons into holy wrath weapons on save compat.

Also, change the ring plus threshold to 6, since +8 slayrings are
no more.
Fix (?) a type warning, maybe
Simplify (|amethyst)
temporarily fix buggy item descriptions (PleasingFungus)
Add Bloax's obsidian statue tile.
Hide a hack better.

I'm not convinced this hack is necessary at all, despite what a comment
in monster::body_weight claims; there doesn't seem to be anything
with CE_NOCORPSE that has a corpse, and it isn't referenced at all in
the blood potion/biting code.
don't fail if there are no files
don't skip_join, it requires annoying configuration
Make an assertion more verbose.
Remove the '-plain' command-line option.

It was the same as adding 'char_set = ascii' to your rcfile (we always
encode in UTF-8 no matter what).
Don't base behavior on beam names.

...with exceptions still existing for one of the Upheaval effects,
and several draconian breaths. Not sure how to resolve them without
adding even more SPELL_ enums.
Make ghosts not a ' ' (#9132).

As tempting as it is to ape NetHack...
Don't give draconian player illusions two breath attacks.
Correct bad sign conversion from unmarshalling (#9131)

We originally used unmarshallByte to unmarshall into a uint8_t, which
is incorrect but happens to work.  Then item_description was changed
to an array of uint32_t, so the conversion from int8_t sign-extended
before converting to unsigned.  Then later we store these values in
item_def::subtype_rnd, which is signed, and they become negative numbers
that cause problems for wand_secondary_string and friends.

Unmarshall that byte correctly, and fix up old saves that may have
been affected.  This doesn't do anything about the fact that we convert
from unsigned to signed in item_colour.
Replace some magic constants.

But books use constants here that differ from NDSC_*, so leave those.
Allow monsters besides Donald to talk in all branches.

<|amethyst> wheals:  dungeon, swamp, shoals, crypt, vaults, hell,
dis, zot, abyss, depths, and many portal vaults would work.

Other branches could not have monsters speaking based on their monster
type (though other key matches could work) ever since Donald's branch-
specific speech was added, in eb2694d6.
Don't hit an inifinte loop when casting IMB.