Substantial changes to internals

- Created a constants file
- Types of land, game entities etc have been moved to the constants
  and are now integers instead of strings
- Added a GameEntity & EntitiesHash classes that are used to store
  all game objects
- The above is used to determine if a player can move to a
  particular square. So now you cannot jesues over water or
  pass through trees. Bummer
- Doing the above made me reazlie that limiting the number of moves
  is not good enough when you eg. move to a tree, then immediately
  turn to the other side, since that move will be cancelled out, so
  I only set the movement delay when the player moves successfully