Made the plugins build under both Scala IDE 3 and Scala IDE 4

This commit is mostly a matter of changing the classpath setup, although
there's also a change to make XML syntax keep working in Scala 2.11
Send notifications when the content of a DetachedCoqVernacFileImpl changes

I don't think it's possible to distinguish between different detached
copies of a single file, but I also don't think that's a problem. At least,
not yet
Coq editor outline pages should work like Java editor ones

In particular, the outline page now listens to the model for change
events, so there's no need for CoqWorkingCopyReconcilingStrategy to
explicitly update it
Moved the interaction-neutral bits of CoqEditor.scala into a new file

Since you ask, the "interaction-neutral" bits are the services that we'd
want to provide regardless of how Coq is being driven behind the scenes.
Some of these, like the content assist processor, are still a bit
dependent on the ideslave protocol, but these will eventually be fixed
Moved a lot of the CoqEditor initialisation code into a new base class

The new BaseCoqEditor class will serve as a foundation on which to build
other, potentially not ideslave-based, kinds of Coq editor
Moved Coq outline page support into the BaseCoqEditor class

The outline is dependent upon the model, not upon the ideslave protocol
BaseCoqEditor should create and install source viewer configurations
Moved most of CoqSourceViewerConfiguration into a new superclass

The new BaseCoqSourceViewerConfiguration class now provides all the Coq
editor services that don't depend on the ideslave protocol. Accordingly,
this commit also makes BaseCoqEditor instantiate this new class by default