Start work on Observer implementation

This pull request will track completion of issue #9 
 - [ ] add Observer type
 - [ ] update Contracts to parse Observer
 - [ ] design and implement ObserverDecoder (or similar)
 - [ ] design and implement async dispatch model