The Coq builder should never try to compile files outside of source folders

This stops the builder from generating vast numbers of unhelpful errors
whenever proof scripts are imported into unusual places
Deleted the KopitiamLogger trait

Only NewCoqFileWizard implemented this trait, and it didn't use it to log
anything interesting
Added a safer way of getting services from service locators
Replaced lots of unnecessarily complicated match statements
Moved the Java proof components into a separate package

This is a first, tentative, speculative step towards being able to move
them into a separate plugin
Updated the informative headers for Project.scala and ProjectUI.scala
Centralise all of the plug-in manifest identifiers in one Scala object
Don't use an explicit IProgressMonitor in the build loop

This commit replaces the build loop's call to IProgressMonitor.isCanceled
with a more general continue callback function
Stop trying to build Coq projects when the builder is interrupted

The Coq builder now effectively treats interruptions as cancellation
requests
Respond to build loop cancellation requests more quickly

Cancellation can now be performed between tasks, not just between batches
of tasks
Made the CoqProgramInstance configurator responsible for starting processes

This will let the configurator do more sophisticated things, like starting
a watchdog thread to monitor the process object
Added a mechanism for interrupting running CoqCompileRunner instances

This mechanism is not safe to use yet -- nothing handles the resulting
IOExceptions, so the CoqCompileRunner just fails in an unhelpful manner
CoqCompileRunner should wrap IOExceptions inside Eclipse CoreExceptions
Use the new CoqCompileRunner interruption support in the Coq builder

CoqCompileRunners created by CoqBuilders should now be killed within 200ms
of their builder receiving an interrupt request
Use the TryCast object to perform type-safe casting in more places

This tidies up the code and makes it more reliable at the same time, which
is nice
Fixed a bug in the Activator.makeStatus method

Exceptions being passed to this method were being silently discarded
Temporary .vo files created by CoqCompileRunner should always be deleted
Added a standard error stream to the EclipseConsole class
Print Coq errors to the EclipseConsole standard error stream
Moved the common build loop code into the new BuildManager object

This commit also changes the behaviour of the common build loop: it now
makes more of an attempt to track the state of each build task