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