initial implementation of constant folding
handle non-qualified names, add 'propagateEnumConstants' command line option
added folding for references to enum members in enum member initializers, added tests
addressed CR feedback, added support for indexed access
move code around to consolidate checks in one place
dropped redundand type assertion, added mising check
merge with master
'const enum' iteration 0. TODO: allow and track const enums in imports, add more tests
merge with master
const enums, iteration 1: const enums can be used in imports, const enums can be merged only with const enums.
allow arithmetic operations in constant expressions, handle infinity\NaN results
addressed CR feedback
added .d.ts generation tests
set 'earlyError' bit to 'non-constant expression in constant enum initializer' error
do not treat module that contains only const enums as instantiated
add test for 'preserveConstEnums' command line argument
merge with master
inline enum constant values for indexed access when index is string literal
Improved type inferences involving union types
Adding tests