Adding full partial layer support.

- Layers never worked previously due to backend bug
- Added base configuration which is automatically clone for replacement, then subtracted for layers if scancode is unused (this allows for partial layer functionality)
- Added default map argument to define a combined map that is different than the typical ANSI map that is used for the base configuration
Fixed multi-byte capability arguments.

- Little endian byte conversion required (has to do with struct assignment rather than architecture)
Changing array type to support different uC architectures.

- nat_ptr_t is defined in kll.h