Merge pull request #345 from myshkin/restruct

Fix monster/attack and object/util tests.
Add first version of the how-it-works doc.

This document tries to describe at a high level how the source tree actually
implements the game.
Merge pull request #348 from elly/how-it-works

Add first version of the how-it-works doc.
Add ident to effect_simple
Remove apply_disenchant, destroy_area, earthquake
Make ui-map.c to take the ui-specific components of cave.c
Move light_room to cave.c
Move project_path, projectable to project.c
Move map_info back to cave.c, create ui-map.h
Use allocated memory for attack_result hit_verb member in
make_ranged_{shot,throw}, to avoid a crash in ranged_helper(). Note that
this still sometimes creates grammatically incorrect hit messages (e.g.
"Your Mithril Bolt smite the Lich.")