skipping files with contradictory presence conditions (incl. the feature model)

this has lead to strange parser bugs, where it could not parse typedef declarations. the typedef had presence condition true, while required previous typedefs had another presence condition.
an invalid feature model leads to the effect that True is satisfiable, but nothing else is. (and true also just because of caching)
fix: lexer did not get the local/file feature model

lead to lexer errors in boot.c, which should not happen. caused only by an invalid expansion
relax type system to avoid false positives on invalid redeclaration of variables

this has to do with tentative definitions and is not entirely fixed, but less more generous. if prevents false positives at the cost of some false negatives
fixed type of sizeof() expression to size_t

(if size_t is defined in the environment)
a function apparently works as scalar as well

if (foo) is valid if foo is a function (not only if (foo()) )
fix test for dedcb45542148967c