New command management. Implemented for Move

Executing a command is now done in these steps:
- Click an unit
	* The command menu appears
- Choose a command
	* A command builder is created.
	* The command builder is used to get a list of targetable tiles.
	* The targetable tiles are displayed on the map
- Choose a target
	* The target is provided to the command builder.
	* The command is built and run as before.

This commit also adds the occupying unit as property to the tiles, and the
occupied tile as property to the units. It allows to easily find which
tiles are occupied and updated them without having to look them up in the
map.