Use buffered I/O for the C target

* For some problems, we were generating several roundtrips per function
  call (4-8!!!), which translated into extremely awful performance. Now
  it's more or less capped to one unless the amount of data exceeds 4k.
Make missing compilers be fatal for Windows .bat