Added Observer/Observable and some messaging

Now have the Observer and Observable Interface implemented. Also have a
base class Message with an Enum of different message types. To add a new
message type, add it to the enum and then create a class derived from
Message, calling the super constructor with the type.