++ refactoring and comments
When by enum:
Generate TABLESWITCH/LOOKUPSWITCH bytecode command in case of "when" by enum entries
++ added check on subject type
++ fix resolving internal class name for enum
++ generate synthetic for top level or package part
++ merge redundant binding slice into WhenByEnumMappings
++ fixed mess with mapping each expression to synthetic
++ rename: synthesized -> mappings
++ some small fixes and renaming
++ moved mappingsClassesForWhenByEnum to GenerationState
When by String constants:
Generate TABLESWITCH/LOOKUPSWITCH bytecode operation for when operator by String constants
++ small fixes in StringSwitchCodegen
++ added some tests
When2Switch: check if entry set is not empty
When2Switch: generate ifnonnull check for nullable values before *switch-opcode
When2Switch: tests for non-literal expression in when by integral
++ small fixes in generateNullCheckIfNeeded