changed the way the potentialResultSize is computed, this avoids skipping some enumerator elements because the featureList suggests a possibly bug number of variants whereas the number of individual features used is quite low

changed environment used to add variables in CDeclUse in addFunction, now using the updated Env instead of the old Env:
this fixes a particular bug where you declare a function with variable modifiers, redeclare it in one specific context. Before this change we used to remove the original definition in the declUseMap for the new redeclaration, although it is only a redeclaration under one specific context.
Merge remote-tracking branch 'origin/master'
very cheap fix to get lexStream into ifdeftoif
changed the way features are filtered according to context and feature model, used to be positive filtering which filters for valid features, now it is negative filtering which leaves out features which don't fit

this avoids getting some crazy out of memory stuff
made printUsage public so FrontendOptions.scala can access it
small change for compoundstatements, if the compoundstatement occurs without presence condition it is no longer transformed to an if statement
Merge branch 'master' into timing