* Astyle: when formatting text, only mark as modified lines that actually changed
* compiler: Fix crash when building single file and the compiler for the selected target is invalid
* compiler: Select the active target using the proper array

The old code uses the list of targets for the file only. This has several
problems:
1. the wrong target would be selected if the file is not added to all
   targets
2. the wrong target would be selected if some of the targets is not valid
   for the current platform
* compiler: Rework CompilerGCC::GetBuildTargetForFile

> Replaced 0 with nullptrs.
> Removed the check for single target. This case could be used to build the
  file for the wrong target if there are more targets in the project and
  the current file belongs to only one target that is not active at the
  moment.
- compiler: Remove unused method GetBuildTargetForFile
* compiler: Reorder the checks a bit. Call CompilerValid for the proper target
* compiler: Better logging for the CompileFile method
- astyle: noPCH build fix (reordered includes a bit)