Observer pattern for critters and towers

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)