Refactor basically how the entire game lifecycle works.

Bounced everything out into interfaces, basically, so now it's all testable.
Things make (more) sense.