Feature/898 warnings as errors

This pull request implements --warnings-as-errors command line option. It will also set the exit status to 1 if there is a compilation error and halt.

The one part that makes me a little concerned is I have changed the callback for the parallel compiler to take two parameters. The filename and the exit status. The exit status will be undefined if everything went OK. It's only set if the compile failed. This will allow the parallel compiler to pass back different exit statuses.