Added a busy property to CoqTopContainer

This will be used by both CoqEditorHandlers and JavaEditorHandlers to
control their enablement state, and will replace Editor's existing pre- and
postExecuteJob methods
Use the busy property to enable and disable the Coq command handlers

Since it's impossible for the user to explicitly trigger an
InitialiseCoqJob, that job no longer attempts to interact with the UI
Moved the CoqTopContainer trait to EditorHandlers.scala
Created a job to execute Java proof steps in the background

This is still a bit unreliable (and will need some changes in order to
support multiple steps properly), but it's a good start
Use the busy property to enable and disable the Java command handlers
Added support for performing more than one Java step at a time

This commit also adds a CoqStep-like abstraction for Java steps
Moved some of the editor-agnostic jobs out of CoqEditorJobs
Added support for the "Step All" command to the Java editor
Unified the proof script generation code for the Java step handlers
Turned the JavaASTUtils trait into a Scala object

JavaASTUtils has no state, so there's no reason why its methods shouldn't
be statically available
Removed the annotation-management code from the JavaPosition class

JavaEditorState is now in charge of all Java annotation handling
Simplified the implementation of the proof script generation code

The new version of the code should also be usable by the Java version of
the "Step to cursor" handler
Added support for the "Step to cursor" command to the Java editor

Stepping backwards is not currently supported by any command; that'll be
added soon, though