Begin experiment with RunCommand

Some issues so far: it seems no usable JDK gets registered when
in unit test mode, which makes this rather problematic to test.
Experimenting with workarounds....
Merge branch 'master' into ProjectRun
Successfully (?) mock the SDK, but can't seem to get output
Use the Runner.execute with Callback; we can now get output!!!
Add @Inject handling; support handling program run output

Specifically with @Inject we include injecting the right
@ClientSpecific implementation for an interface (or abstract class)
based on the "client" JSON key. Just because I'm not planning to
support other clients doesn't mean I shouldn't make it easy to add :)
Simply AsyncRunner interface and optimize implementation
Add initial vim integration with Run, add TerminateCommand

Need to add tests for handling termination of long-running programs
Add ExternalRunnerTest; attempt to handle Run problems

Apparently vim integration *doesn't* work consistently. Added the
ExternalRunnerTest to try to have a tighter testing environment,
but it seems to work just fine there. Not sure why threads seem
to finish early in the production environment....
Fix timeout issue... with longer timeout; fix quotes in output

Not sure why but 1.5s seems to be the magic number. Weirdly,
other calls take significantly less time....
Attempt to handle cancelled launches
Run ExternalRunner on pooled threads to try for better perf

It still sometimes times out on this computer, even though it
works consistently on my MacBook. Still not sure why it would
even be as slow as it is when 480ms is good enough for eclim.
Also, setting the cursor to scroll the window doesn't seem to
work anymore. No idea why.
Get build to work by pulling out more of the build API!

Refs #6

Also had to mock out some of the UI stuff that the build
pipeline is coupled to :(

We still have to fix the RunTest that cannot find JDK 1.7, but
at least the build and run works in production now....
Use soft assertions in RunTest

Still can't get the test environment to compile things :(
FINALLY get RunTest to pass

Discovering JavaTestUtil hidden in IntelliJ's source (had to
import it directly, I guess) and the CompilerTestUtil. It may
be a bit of a magical incantation, but it's working!
Add test for terminating an active launch; cleanup
Merge pull request #7 from dhleong/ProjectRun

Implement Project :Run command