Enemy AI engine overhaul, menu fix

The new AI system allows enemy AIs to hook events on the underlying
BattleUnit, enabling more dynamic attack patterns.  Also updated all
menus to use GetKey() to prevent lost keypresses.