Allow the evaluate end-point to separate output from compiler

vs. program.

Specifying separate_output=1 in an evaluate request will mean the return
value is then `{ "rustc": <output of the compiler>, "program": <output
of the program> }`.
Possibility: measure the longest sequence of `\0` characters in the input and print/split on a longer sequence.

e.g. `fn main() { println!("\0\0") }` (where the `\0`s are actual NULs) would split on `\0\0\0`.