Rewrote the entire file of BuildOrder in a better way, removing all uses of the Maybe monad, and wrapping everything in (StateT Game []). Additionally, abstracted some details out to a GameAction class, so that the logic isn't unique to units.