Add shape transformation upon size and position changes

The default shape for projectiles is a rectangle.
Add check for position getting outside World boundaries
Replace size & position with Shape functionality

Porjectiles now need a position vector when constructing new ones.
Move updateTurret() functionality to update() of AbstractTurret.
Use public methods instead of private/protected variables.
Remove old and unused methods.

Introduces bug: Turret position varies when rotating tank.
Fix turret rotation bug
Remove commented code
Merge Shape to Powerups