Adding support for firstScanCode calculation and initial Variable container implementation

- To better support RAM/Flash packing adding support for first scan code calculation
- This way if the first scan code is high (e.g. 0x40) RAM is not used for the scan codes without keys assigned

- Some initial work for KLL variables
- Will be used to influence runtime and compiler features of the firmware