feature/outer kore

**please review**

outer KORE sketch. will probably change as we start using it.
it's a marker trait for anything that can be used for parsing. Remember you wanted to have the `QuickParser` take any `ASTNode` as a definition of a parser. This is ugly and error prone -- the user can send there any kind of junk, e.g., a rule (how do you parse with a rule?). 

`ParserPiece` simply means "this can be used, on its own, for parsing a bit of text". 

Alternatively (and I think this will be cleaner) we could only accept a module to be used for parsing, and maybe have a few overloaded methods which also accept production types and wrap them in a module.