feature/outer kore

**please review**

outer KORE sketch. will probably change as we start using it.
> How is this supposed to work? This doesn't have any methods or attributes, how is it useful?

it's a marker for all production items. for example, `SyntaxProduction` only accepts `ProductionItem`s, not any type of object. if you try to send it something else, it will fail at compile time, which is what we want.

> How can we use this from Java side?

it's a Java interface