First pass at a monster spell slot rework.

Right now this doesn't change behaviour any, but it allows for changes
in behaviour.
Generalise the spell-list-to-spell-slots code for ghosts and monspecs.

A better approach for monspecs would be to allow specifying the weight
and spell flags in spells individually, but this is an acceptable
interim approach which doesn't require us to go and adjust every vault
defined spellcaster.
Fill out the new mon-spll.h fields.
Assign frequencies to spellforged servitor spell slots, too.
Don't divide by zero.
Rework the monster spell selection algorithm to use the new data.

For normal spell selection, random2(200) is compared to the cumulative
weight of spell slot frequencies to select a spell; if it rolls above
the highest frequency a spell isn't cast. The spell frequencies have
been chosen to roughly coincide with old spell casting frequencies.

The specific meaning of spell slots also goes away in favour of flagging
spells themselves as self-enchantments, emergency spells, etc. In the
short term, this means, however, that spells that are only supposed to
be used in emergencies will be used at will.

There's still some work to be done here, such as when selecting spells
like Dig outside the normal channels, but in most cases this is now
working as intended.
Increase casting frequencies of Lom Lobon and Gloorx Vloq.

Lom now casts on 9/10 of actions; Gloorx on 1/2.

Lom is most effective when he's employing his master selection of
spells, and this should make him considerably more threatening (he can
go 5-5 against Cerebov with this change where he used to lose horribly
on a consistent basis).

Gloorx has gotten consistently less threatening with new spells,
tactics, etc. that have cropped up over the past couple of years, and he
deserves a bit of help.
Adjust frequencies of out-of-band spell selection.

This roughly mimics the old behaviour of having an approximate 1/4-1/3
chance of casting a spell on any given turn.
Do away with SPELL_MELEE in monster spell sets.

Its purpose of forcing a non-selection of spell is now irrelevant, being
superseded by spell slot frequencies.

It needs to stick around for now due to its relation with rods of
striking, but it's effectively an unthing these days.
Hook up and comment on the use of MON_SPELL_EMERGENCY (wheals).

It's intended to treat that slot like the old emergency spell slot -
only using the spell in emergencies.
Use the flag parameter properly in _pick_spell_from_list (wheals).
Add a couple of uses of MON_SPELL_EMERGENCY.
Apply monster antimagic only to spell spells.
Injury Mirror is a god ability.
Fix an mprf.
Add MON_SPELL_BREATH.

Does more or less what you might expect; makes the spell slot subject
to a breath timer. Also removes a function that seems now-redundant.

The only gameplay change should be that hellephants and nagas now have
timers for their breath weapons.
Don't call fixup_spells() on everything on every reload.
Display some useful info about spell slots on wizmode xv.
Remove M{F,}_SPELLCASTER.

It more or less meant "is this monster able to cast spells?"; that
question is perfectly well-served by looping over the monster's spell
list and seeing if any of them are not SPELL_NO_SPELL. The slight
performance hit is, I think, compensated by not having the confusing-ness
of the name (attack.cc had one case where can_use_spells was treated as
is_actual_spellcaster, for instance.)

The only intended change in gameplay is a slight change in how
polymorphing unique works: the new monster no longer has only half a
chance to cast, it only keeps the spells of uniques (I'm not certain,
but I think it used to keep the spells of vault monsters?), and there
may be some corner cases where the unique loses its spells, where before
it simply would not cast them (this would matter, for example, if it
were later polymorphed into a form that could cast them).
Remove a redundant-looking block of code.

It seems this would stop monsters with a wizard spell from using even
innate abilities while silenced (there's a check for silence just below
the removed block).