Refactor player movement into separate component

interface with this component on the keyboard via player_controls_component