Add SbtClient.analyzeExecution method

This lets you figure out how sbt will interpret a string
that you might want to pass to requestExecution.
It's useful to see whether a task or command exists,
as well.
Clean up request/reply cut-and-paste in SimpleClient

We can generically handle all requests that just need to
wait for a reply value.
Merge remote-tracking branch 'origin/master' into wip/havocp-analyze-execution
analyzeExecution: match command.startsWith(s"${c.name} ")

Handles the case where we have the command then some parameters.
Merge pull request #175 from sbt/wip/havocp-analyze-execution

Add SbtClient.analyzeExecution