Move states and state strings into Player.
Split player state functions into PlayerState.
Factor out player position code.
Split position into its own class.

This will almost certainly annoy Charles.

Also, some small changes to cmd that occurred whilst trying to track
down a bug that turned out to be a lack of `make clean`.