Observer system implemented for scoring and game resets.

* Observer.h is just a classic implementation of Observer/Subject inheritance based notification system.
     - It's templated so the idea is you instantiate an object with a certain type of event