Added the PresenterDecorator class which allows Presenter objects to be augmented with additional behavior.
The setView method of the Presenter class is now public as the PresenterDecorator had to be able to cascade the operation through to the decorated presenter object. The ViewController was updated to initialize the presenter at the correct time.