Don't use internal data of mon-pick from the outside.
Don't use the notion of monster depth in hints mode.

It doesn't make any sense for anything but random spawns, and is not defined
for monsters who can't be placed randomly in the current branch.
Don't special-case pan lord power in zotdef.
Don't pretend mons_{rarity,level}() use anything but place.branch.

We'd want them to, but that code is getting overhauled anyway, so let's not
cloud things.
Convert mon-pick data to a more readable scheme.

Instead of a base level and a rarity, which then use a ridiculously obscure
algorithm to accept or reject monsters, the new data includes:
* minimal depth the monster can be found on
* maximal depth
* rarity at the center of the range
* distribution type (flat, a linear triangle, something halfway between the
  two)
* the monster's enum

The results should be the same, with very minor differences:
* distributions within allowed range are approximated by one of three shapes
  (FLAT, SEMI, PEAK), this shouldn't produce noticeable differences
* effective rarity has been shoehorned into a 0..1000 range (out of 0..10201),
  using div_rand_round().  There's a number of monsters with 35/10201 rarity
  which ends up as 3 or 4, and strings of monsters of the same rarity end up
  randomly perturbed.
* the once-in-the-life-of-universe chance to generate a monster outside the
  -5..+5 range is gone, you can now set arbitrary ranges and they're absolute.

There's no actual code to use this data yet, merely an emulation of the old
functions.  It looks like ZotDef applies some complex rules to the monster's
depth, it may take some thinking about how to convert it.
Don't pretend pick_monster_no_rarity() uses depth, either.
Avoid a pointless loop in ZotDef monster selection.
Don't go through inappropriate monsters during arena selection.
Round monster rarities towards 500, rather than randomly.

This avoids groups of monsters with the same old rarity having distinct
rarities for no obvious reason.
Suppress merge suppression of moths of suppression.
Remove an outdated comment.
Rename mons_level() to mons_depth().

Rationale: http://www.giantitp.com/comics/oots0012.html
Swat away bumblebees.
Get rid of a crapload of uselessly passed level_number.

Also, get rid of one of three copies of '8'/'9' logic.

Also, fix the depth of place: not being heeded for some purposes.

Technically, there is one actual change: shallow items in Ziggurats had
a fixed level of 27, they now use 27 + depth in Zig.  Not noticeable as
most nearby items use level 351 anyway.
Rename mons_spec.mlevel to ood, as it's used only for '8' and '9'.

Also, remove the vault monster tag lev: which has never been used.
Use the player's current depth for monster banding.

It used a mixture of requested (OOD/place:) depth and current depth, often
in the same if statement, obviously not done on purpose.

While having some of the logic use requested depth might be plausible, I
went with a simple consistent way.  Few bands vary with depth anyway.
Don't overload mgen_data.power for Tukima's power.

It is absdepth for all other uses; there's no connection between the two
except an extremely ill-thought name.
Get rid of mgen_data.power, use place for that.

There's still a lot of use of monster_level inside monster selection, but
at least the external interface should be free of it.

ZotDef is handled by a hack, might be wrong -- beware.
Merge branch 'master' into mon-pick

Merge commits instead of rerere suck, but not being able to comfortably use
the test rig sucks even more.
Fix vault OODness being applied twice.

When we had separate power/monster_level and place, the code redundantly
applied OOD logic to both, making them be in sync.