Added observer pattern files

Created implementation for the observer pattern.
Also added these files to the make list. Will likely move
these to external files if it is easy enough with cmake.