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
CoqEditor should include preferences from the shared editor store

As a result of the last commit, matching bracket highlighting worked, but
the progress annotations didn't. This commit fixes that problem
Only perform code folding on long blocks of code
Merged the VernacularReserved object into CoqTokenScanner

This commit also removes the now-empty dk.itu.coqoon.ui.coqparser package
Tidied up the syntax highlighter's word detection implementation

This is now a (reasonably) faithful implementation of Coq's own rules for
identifiers, which should also be useful elsewhere in the code
Began working on some design documentation for Coqoon 0.4.x

Calling this a "first draft" would be generous: this is a few semi-related
thoughts scrawled down and stuck together with LaTeX
Added more text about plug-in manifests to the design documentation

This commit also adds a few more placeholder sections and fleshes out the
history a bit more
Tidied up the lazy activation section and added some more section headings
Added primitive identifier highlighting to the tabular goal viewer
Made the goal viewer default to the tabular goal presenter

This commit also renames the goal presenter classes to better reflect their
roles