reference system to stop segfault when gather target is removed

Use a reference class instead of a pointer to a targeted object. there was no way to tell if the unit pointed at was deleted. If the target is removed from the game now, the reference can indicate this.

Added: 'p' key will draw unit paths. Many bugs with unit movement were fixed.