First cut at read-only event loop.
Fix deadlock in read only loop if no events arrived after build state was loaded by the main build.
Fix issue where ErrorResponse can come *after* acknowledgement that a request has been accepted.

We need a new message to denote "Failure in execution" which is different than "failure to accept".
Remove duplicate log messages.

* For some reason, log messages are going through standard log message
  *AND* through consoleOut.  This leads to duplicated log messages everywhere.
  We turn off the consoleOut message for now, and things appear ok.
Fix error handling of commands to re-register on failure.

* Error handlers must re-register on state after preforming their work.
* Fixes issue where second failure would cause sbt engine to hang.
Fix jline prompt so  it will correctly redraw when needed.

* JLine prompt now redraws if output occurs while waiting for input.
* Minor amounts of communication between println + readLine to
  denote hwen we have to redraw the prompt.  Otherwise the
  other mutability kills our screen.
Clean up thread handling for the example terminal.

* All output events are directly handled on the SbtClient thread.
* All input events are passed into a queue and handled on the main thread.
* One remaining use of global for requesting autocompletions.
Fix/comment from havoc's review.
Remove TODOs havoc doesn't like or think we will ever do.
Fix error response usage throughout the code.

* Create new event ExecutionFailed which is sent upon command failures.
* Create new RequestFailure send to the requesting client upon failure of request.
* Update SimpleSbtClient to track these messages and clear request state upon completion/error.
Merge pull request #69 from sbt/wip/read-only-event-loop

Read-only event loop processor