Add line of include in cyclic dependency violation.
Create violation when the same file is explicitly included twice.
Ignore C++ keywords when parsing C files.

C files sometimes use reserved C++ keywords, and thus cannot be parsed directly.
The usual solution is to create macros manually (in sonar.cxx.defines) to replace them with non-reserved keywords. This however
does not work for mixed C/C++ projects.

To overcome this, this patch lets the plugin automatically add the macros depending on the type of the file. The plugin also resets
the __cplusplus macro according to the type of the file.