Aggregate timing stats
Factor ledger maintenance out of main evaluation code
Remove turn/round/finished/aborted globals
Move %leech inside the ledger
Correctly assign VP gains from faction teleport special ability use
Kill $active_faction global
Simplify ledger management a bit (no need to finish_row() the last row)
Move the logic for handling transition between different game phases
out of main command handling
Move subaction transitions inside Acting
Move action_required inside Acting
Move setup phase actions into Acting
Refactor the handling of switching to next player / ending round

Simplify some of the horrible logic for getting the turn change
comments in the right place.
Jump off the deep end with Moose

Mouse is buggy, Moose is slow, bare Perl OO is about as nice as
eating glass. Go with the slow option, since the whole point of
this exercise is to eventually switch from CGI to persistent
processes. (Moose even with the very minimal use so far would be
adding something like 0.3s latency to every request -- so this
code can not realistically be deployed as-is)
Remove the various global faction tables. Mostly remove referals to factions by name
Remove some of the easier global data, read-protect data of static nature

Read-protecting turns out to be a real pain, since the static data
that could well be shared is occasionally mutated. Often for no good
reason at all, but just to have reduced diffgame output at some point
in the past
Another batch of globals
Remove obsolete file
Move first component from CGI to Plack / mod_perl
old append.pl into a new-style handler

Move a bunch of functions from the global package to proper ones.
Port gamelist over