further moved the mess from the main loop to other classes

The player class should hopefully encapsulate the stuff that should be
encapsulated within a player class, such as input and output to various
game systems that need player input info.