Add projectiles and refactor damage computation to depend on projectiles instead of towers.
Refactor Tower subclass constructors
Merge projectiles into master branch and resolve conflicts