Implements https://github.com/google/sanitizers/issues/835.
Flush stdout before exiting in test cases.
Since the atexit hook is used for exit reports, pending prints to
stdout can be lost if they aren't flushed before calling exit().
Expect tests to have non-zero exit code if exit() is called.
This change breaks Clang Source-based Code Coverage. For example, if you run ./fuzzer -runs=0 ./corpus_dir with 123 files in corpus_dir, you'll see LLVMFuzzerTestOneInput executed only once, not 123 times.
We've temporarily rolled libFuzzer back Chromium because of that.