Add a py2.7-like CalledProcessError for py2.6 compatibility.

Summary:
fd05eb7 added a backport of `subprocess.check_output` but didn't
include a similar backport of `subprocess.CalledProcessError`,
which is needed to accept the `output` parameter.

Test Plan: Ran, forcing some of the inner commands to fail.
java thrift: create src.zip parent directory before building.

Test Plan:
We already have an integration test for this, but it can't run
since we don't have thrift on laptops.
JavacInMemoryStep: write BuildRuleSourcePath to srcs list correctly.

Summary:
We were previously writing the string representation of this step's
`SourcePaths`, which meant we were writing name of the build rules
generating `BuildRuleSourcePath` sources rather than their resolved
paths.

Test Plan: Added a test for this case.
JavaTest: don't crash when result file is missing.

Summary:
If a test exits early, it's possible that it doesn't create a test
results file.  Therefore, when we attempt to parse it, we kill buck
with an ugly exception trace.  This diff generates a dummy test case
to signal failure in this case.

Test Plan: Added an integration to handle this case.