Moved the Coq project makefile generation code into a new file

This commit also tidies up CoqBuilder a bit, moving more code into the (now
private) companion object
Reimplemented the CoqBuilder.generateRefs method as a model visitor

The model really needs to take over some of the responsibility for
resolving dependencies
Added two new classifiers for "Load" and "Require" sentences

This commit also makes CoqBuilder use these new classifiers instead of its
own regular expressions; a future commit will do the classification in the
model instead
Added support for Load and Require tags to CoqVernacFileImpl

These tags don't expose all the information of the original sentences --
"Import" and "Export" are silently discarded, for example -- but they're a
start
Removed the builder's separate treatment of references and dependencies

References to other files are now retrieved directly from the model as
part of the dependency calculation process
Refuse to compile Coq files with invalid fully-qualified names

This commit adds a basic sanity check to the compiler wrapper which only
checks for whitespace at the moment
Pass the abstract identifier to AbstractLoadPathProvider.getLoadPath

This change isn't interesting at the moment, but an upcoming change to the
load path extension point -- to add support for delegating the handling of
parts of the abstract identifier namespace -- will change that
Changed the behaviour of the Coqoon load path extension point

Extensions now take responsibility for a prefix, not just an identifier.
This should allow for more sophisticated dependency handling, like
automatically downloading dependencies or invoking a package manager
Coq84Library and ChargeLibrary should require a precise identifier match
Added a Coqoon UI preference to control bracket highlighting

Eclipse's SourceViewerDecorationSupport class won't even try to highlight
matching brackets unless there's a preference to control it. This one,
introduced to satisfy this requirement, is just an implementation detail
and so has no corresponding field in the preferences dialog
Added simple bracket matching support to CoqEditor