feature/outer kore

**please review**

outer KORE sketch. will probably change as we start using it.
I am not so sure about this. If the user gives me a rule in the AST, then I will just ignore it. I can make my parser to take an ASTNode representing a `Definition` or a `Module`, and look for pieces of syntax that I'm interested in.
The way I see `QuickParser` is as something independent: hey, look into this AST and see what kind of parser can you generate.

My worry is that you are introducing a concept that we don't need. If something can be used for parsing, only the parser should know about it. Take for example a subsort `syntax Exp ::= Int`. This is a `ParserPiece`, but this also has semantic meaning when generating predicates...

Other opinions?