add GumballObserver, Subject, and some changes in GumballMachine and inspector