Implemented State pattern - StateManager and move the movement code into PlayerMoveState
Fix a minor bug in StateManager

I forget to check for empty stack when popping.
Added field of vision code