Made mutation categories actually matter.

The primary mutation category now has significant influence. Traits from
other categories have a high chance of being removed. It is now very
difficult to end up with every single trait in the entire game.
Mutagens that cause mutation only in specific categories.

There are still a lot missing.
Added the remaining specific mutagens.

For now they use very general recipies.
Add support for elevators to game::nertical_move().
Call game::vertical_move() from iexamine::elevator() instead of trying to shift levels manually.
ranged.cpp: target: Players can no longer aim horizontally beyond
the weapon's range if circular geometry is enabled.
Add missing semicolon
Save on sleep?
Option to save game before sleeping.
Sets values for autosave.
options.cpp styled using current ruleset.

Signed-off-by: D Lue Choy <dluechoy@>
Despawn monsters when we change z-levels, and handle sticking them in the stair queue properly.
Nest trig_dist() in rl_dist() instead of replicating the implementation.
Don't clear the npc list while saving

Fixes #1336
Display the number of movement points the player's last action used.
Marshall info about the current square at the start of drawsq() instead of calling the same methods multiple times.
Sign SIGNOFF.
Make lava destroy any items placed on it

Fixes #1154
Disable spawning and crafting of two-way radios

Fixes #1430
Add a caching accessor for whether the player has active night vision.
Use new accessor to test for presence of nightvision tech.
Add invalidation hook to player that is called every action.
Merge limiter to ranged targeting in trig distance mode.