KORE milestone 1

**please review**

 - unit-tested convertors from KORE to KIL and back
 - significant changes and simplifications to KORE data structures. They are smaller and more powerful now

it occurs to me I'm not sure what the correct way to handle the current feature under which empty user lists in programs currently are parseable from the empty string. @cos do you have thoughts?