Fix computation of __builtin_type_compatible_p

Use type compatibility instead of type equality.
Thanks to David Greve for the report.
Remove spurious lines in Makefile.features
Do not hardcode size_t as unsigned for offsetof
Allow cast of functions to function pointers

Most of the time, this is not needed because we translate
function expressions to function pointers.  But this trick
is necessary to handle typeof((void*)f).
Avoid clashes for introduced __constr_expr

constrExprId was reset between each function definition, which
served no purposes and introduced clashes in the case of multiple
global compound init.
Support C99 flexible array members

Flexible array members must be:
- ignored if they are not initialized explicitely,
- rejected if they are initialized, except if they are static (unlike other
  arrays of unspecified length, the length of which is defined by the
  initializer).
Fix log message going to the wrong channel

Cprint.out was deprecated (Cprint uses Whitetrack.print directly),
but still used by some modules. Use Whitetrack.setOutput instead.
Handle trailing empty initializers inside arrays

They used to be ignored.  Now explicitely set to {0} instead of {}.
This bug has been outstanding since 1.3.8 at least.
Use correct integer kind for zero enum initializer

Fixes regression exhibited (but not introduced) by previous commit.
Fix compilation for rarely-used extensions

LLVM and blocking graph extensions had old compilation
errors, undetected because they are not built by default.
API documentation for computed goto
Preserve cases in switch block with attribute

The problem went unnoticed because the list of cases is usually ignored,
except to build the CFG in --domakeCFG.

This closes #1812231.
Support range of values in case labels

Some programs use very large value ranges in switch statements:
  case 0 ... 0xffff:
Currently, CIL folds such ranges into a list of cases, but this may consume an
arbitrary amount of memory.

This patch:
- adds a constructor CaseRange to the Cil.label type;
- adds a --useCaseRange switch (disabled by default for backward compatibility);
- adds a function Cil.caseRangeFold to expand CaseRanges into lists of Cases.
Support case ranges in prepareCFG
Add whitespace to fix ocamldoc output
Do not run test using a lot of memory

On machines with limited amount of RAM, the system starts swapping a lot when
running testrun/sizeof3, before failing because time-limit is exceeded.
Add a regtest make target to run regression tests
Allow symlinks to cilly (#120)
Remove unneeded files
Remove useless code in Util