Large amounts of code refactoring here! Read commit for details.

Changed EngineEntity to an abstract class and moved most move/getters
setters functionality into it. By default it uses the same move function
as the Ball class, which is Overriden in the Projectile class in order
to provide better functionality for projectiles. willKill is added to
the CollisionEngine to kill balls when they collide with projectiles.