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.