ModelContentProvider should support all ICoqElements, not just ICoqModel

This commit also adjusts the behaviour of ICoqElement.getAncestor slightly:
in particular, objects can now return themselves if their type matches that
requested
Added a new base class for editor-dependent ViewParts

This commit also rebuilds GoalViewer atop this new class
Removed the ICoqFile.setContents method

This was an unhelpfully low-level interface that nothing was using
Tidied up the CoqElementChangeEvent hierarchy

The root of the hierarchy is now CoqElementEvent, and a new abstract
subclass -- called CoqElementChangedEvent -- is used as the base class for
events indicating changes to an existing element
Added a new CoqElementEvent subclass for ICoqVernacFile content changes

This commit also adds support to CoqVernacFileImpl for sending this new
event
Bumped the version numbers to 0.4.2 and added a changelog entry