Observer Annotation

Adds a Subject interface to the event package as well as a new type of annotation, Observer.