Pass cargo output around as string rather than writing to file.

This lets us show the output on failure, and is a step towards reducing
the number of temporary files.

Bug: 311373500
Test: Ran on csv crate with errors added
Change-Id: Ib25786440bb63415bfd8d5658e6b23389e9064ea
4 files changed