Master
Further cleanups.
Main loop much more understandable now -- split into calls to do_move() and do_command().
do_command() now much narrower in scope. Follows the lifecycle of command input, and that's mostly it.
do_move() merely executes the move iff there is a move to execute.
Also normalized return types in action.c, and did lots of little cleanups and documentation corrections.