Observer pattern for critters and towers

If the earlier merge to master did not go through, please merge this.

Added observer design pattern for critters and towers (the Update() methods in both have not been implemented, and there are no calls to these methods in the Tower and Critter classes)