Added support for coqtop's ideslave protocol
Centralised all of the program-locating code in CoqTopIdeSlave

This commit should also make CoqTopIdeSlave work (vaguely) on Windows
Close the input and output streams when killing the coqtop subprocess
Simplified the IContentOutlinePage check
Began adding action implementations based upon CoqTopIdeSlave

This new file also contains an Editor trait, which provides methods for
accessing the editor's state; CoqEditor should soon implement this
Added a speculative implementation of the Editor trait to CoqEditor

Although it'd be nice to hook the underway and completed variables up to
the existing annotation code, that won't be possible for a while
Replaced the addAnnotations method with a wrapper

Although the underway and completed variables are now being updated,
they're not useful yet -- in particular, existing calls to addAnnotations
usually pass an underway value of zero
Moved the ideslave-based Eclipse jobs into a new file

There's no reason why all of this code should live in IdeSlaveActions
Make sure that CoqEditor's two offsets are properly synchronised

As a result of this commit, the addAnnotations wrapper method now ensures
that the underway indicator is never behind the completed indicator
Perform blocking I/O operations in a synchronized block

This should make it slightly less dangerous to use a CoqTopIdeSlave
instance in more than one thread
Fire a property change when a CoqEditor's goals change
Added support for the ideslave search and set_options functions

Since all of the ideslave work is still very experimental, this commit also
adds some debugging code to the sendRaw function
Rename IdeSlaveActions to IdeSlaveHandlers -- and implement more handlers
Began to implement support for stepping backwards
Use the new ideslave-based code to handle commands
Use the new ideslave search code to perform code completion

This commit also fixes a few minor annotation processing issues
Deleted most of the old action code
Deleted (almost) all of the Coq response parsing code

A dummy shell is still being used by a few bits of the codebase, but it'll
also be deleted before too long
Deleted (almost) all of the old coqtop interaction code

CoqTop.scala still contains a few utility methods that will be needed by
the new actions and jobs
Deleted lots of now-unnecessary code from DocumentMonitor