Also interrupt the Coq builder when the user presses the cancel button

This is slightly hacky at the moment -- exceptions thrown by the underlying
CoqCompileRunner are just discarded if the build was interrupted
Tidied up the names of some of the Coq compilation classes

It's always annoyed me that CompileCoqAction created a CoqCompileJob (and,
more to the point, I always used to forget what the CoqCompileRunner class
was called). This commit fixes that problem
Don't reset the underway marker too aggressively when stepping forwards

The underway marker is now only reset when a Coq step fails; this makes no
practical difference yet, but it's necessary in order to allow multiple
step jobs to be enqueued
Allow JobRunners to give up early if they detect a problem

CoqStepForwardJob will soon make use of this mechanism in order to recover
from errors
Allow multiple step-forward jobs to be enqueued

For the time being, this only works in the Coq editor
Restructured UIUtils' wrappers around the syncExec and asyncExec methods

The Runnable wrappers were never used, so they've been removed, and the
old syncExec method has been replaced by a new method which can actually
return a result
Fixed a thread-safety problem in the Coq console setup code

The MessageConsoleStream.setColor method can only safely be called from the
UI thread
Added support for Coq 8.4's proof-structuring commands

Isolated curly brackets and bullets are now correctly handled as complete
commands