Nerfs Prime

This makes the Prime stat-mutations track a wider range of stats.  So
now, if you're artificially low thanks to a freak accident with
minmaxing, or extremely high thanks to overspending in chargen, you'll
get appropriately buffed.

Further, Purifier's efforts to restore you to baseline now can undo the
perfection you've worked so hard to build.  So be careful.  ;-)
Remove monster::onstairs, it's only written, never read.

It seems obsolete as *all* monsters in game::coming_to_stairs are on stairs, while all other monsters aren't.
Added saving monster to the overmap.

The interface is in overmapbuffer, so it's global.
The function overmapbuffer::despawn_monster replaces game::force_save_monster.
Stored monsters are loaded from overmap in map::spawn_monsters, like
monsters from static spawn points.
All monsters are stored on the overmap as exact copies, no monster goes
back into a group. This also erases monster::spawnmap[xy] and
monster::spawnpos[xy] as it's not needed to know where the monster had
spawned.

Add documentation to shift & despawn monster functions,

Renamed game::despawn_monsters to shift_monsters because that's what it does.
Changed parameter of game::despawn_monster to monster index to allow
that function to remove the monster, this has to be done by the anyway.

Added documentation for both functions.
Add overmap::add_mon_group,

encapsulates the adding of monster groups to overmap::zg
Generate spawn points on mapgen

Monster from overmap monster groups are now only spawned through submap spawn points.
The direct spawn in game::spawn_mon is gone.

All groups at a submap can be accessed with overmapbuffer::groups_at.
Remove overmap::monsters_at

Use the overmapbuffer functions instead.
Reformat and fix the part in monster::die: kill groups around the monster, not around g->lev[xy]!
Replace iteration over monster groups on overmap with range-based iterations.

Also use overmapbuffer::monster_at instead of manually searching for them.
Changed overmap monster group to be a multimap,

because performance. It's really bad when with a vector.
Merge remote-tracking branches 'dda/pr/8397' and 'dda/pr/8492' into dda-master

* dda/pr/8397:
  Changed overmap monster group to be a multimap,
  Replace iteration over monster groups on overmap with range-based iterations.
  Remove overmap::monsters_at
  Generate spawn points on mapgen
  Add overmap::add_mon_group,
  Added saving monster to the overmap.
  Remove monster::onstairs, it's only written, never read.

* dda/pr/8492:
  Nerfs Prime
Remove currently unused lua helpers since they break when monstergroups become private.
Astyle for great justice.