Collisions refactored.

The Unit class has been modified to handle the collisions better. Code
has been simplified across the board and should work as intended now.

The logic is:
Bullets pass though its own faction.
Bullets are destroyed by other factions.
Units are damaged only if the bullet is from another faction and from an
enemy color.
Player controller logic centralized

The logic for controlling hero and sidekick has been centrlized in a
parent class.