Mostly done. Still need to fix warning printout.
Experiment with how to pass back status. process dictionary doesn't work.
a little closer, status is passed to main process
Pass exit status to callback so we can decide there whether to stop or not.
Fix tests that expect the parallel compiler callback to only pass one parameter.
Update parallel compiler callback documentation
Unwind a lot of the wrong direction, output warnings based on warnings-as-errors setting
Implement José's suggestions.

1. Detect all places in elixir_errors:handle_file_warning/3 where we
output something with io
2. Change those places to go through an internal function that will
call elixir_compiler:get_opt and figure out if we should print to
stdout or stderr and act accordingly
3. In the same function above, whenever we print a warning as an error,
we should store somewhere that a warning as an error happened. I
recommend storing that in the elixir_code_server gen server
4. Provide a Code.compilation_status that would return it
Don't pass warnings-as-errors to module since it isn't needed
print compiled even if compilation_status is not :ok it may have been from another file. Halt on an :error