Support GCC's statement expression.
Fix correct include check if comment is right after file string.

The checker was incorrectly reporting issues if the name is specified in quotes,
and followed immediately (no space) by a comment.
Fix reserved name check.

* According to the standard, reserved names that either begin with underscore
followed by a capital letter and a capital letter, contain 2 consecutive
underscores, or are part of the reserved keywords.
* The check was not working for function-like macros.
* The check could report errors if #define is used in commnets.
prevent duplicated literal check to flag nullptr for c++11 as violation
Ignore macro expansions in one-statement-per-line check.

Many macros expand to more than one statement, making this check quite unusable.
This patch ignores all but the first generated statement in a sequence.
Support parsing GCC build log.

The sonar.cxx.compiler.parser property can be used to select either vc (default)
or gcc build log parser.
Do not generate magic number warning when preprocessor macro is used.
cppcheck: Add support for XML version 2
- try sequentially to parse the report wit format V2 and V1
- format V2 is the default
Allow magic number in array initializer.
Account for tab-width in indentation level check.
Fix members indentation checks.

Check if member definitions are aligned, instead of simple types: this used to cause problems e.g. with 'virtual' members.
Fix indentation check if indent starts on the same line.

In case code starts on the same line as block, indentation reports a failure if
the next lines are not aligned with the first symbol.

i.e.
void f() { int i = 3;          // OK to add the code at the end of the line
           return i * i / 3; } // Correct: aligned with previous definition

It may be a bad practice to add code on the same line as the beginning of the
block, but that should be a separate rule.
Fix indent of labels.
Fix indentation after conditions/loops.

Indentation was not correct if the conditional blocks were not compound
statements, or conditions were cascaded (e.g. else if).
Fix indent inside linkage declaration and namespace blocks.

* Namespace block content was supposed to be indented twice.
* Linkage specification block were supposed to be indented: this is often not
practical, since this is used in code compatible with both C and C++, and C
indent is most often used while the linkage spec is in #ifdef block.
* Add options to indicate namespace blocks should not indent (default: true).
* Add options to indicate linkage specification blocks should indent (default:
false).
Also check if declarations are properly indented.
Check indentation of case/default keywords in switch.
Add option to avoid indenting on switchBlockStatementGroups.
Account for trivias in alignment check.

* Do not report error if there are trivias before the token, on the same line.
* Verify trivias are correctly aligned as well.
* Verification preprocessor directives start at first column.
Strip white space at the beginning of function-like macros.

This was already done for object-like macros, and is required for proper concatenation (##), indent check...