refactoring

This lets us create case expressions manually, not necessarily based on
EffesParser classes. Useful for when we want to do a rewrite that
results in a case.
more refactoring
checkpoint

Generalizing some stuff, adding some tests, generally leaving things
broken
method invocation on disjunction now works

The cost: getting data type args no longer works. Need to fix that.
cleanup
use non-snapshot antlr-denter-1.1
restore lookup on vars and type args
methods can't hide type args
checkpoint: add failing test

Invocations on disjunctions work a bit differently when the target isn't
a var; we need to create a custom var for it.
checkpoint, get things working on the compiler

Fails at runtime, so maybe something's broken on the compiler side as
well. But it looks right in the ir.
fix tests
fix how vars are found in Nodes

Previously I was only looking in Statements, of which only
AssignStatements returned anything. But that missed two cases:
AssignExpressions (which was breaking the invoke-nonvar-on-instance
test) and statements that contain blocks that contain AssignStatements.
So, replace that simplistic var-finding mechanism with a (slightly) more
sophisticated one that uses a recursive vistor. Also add a test for that
nested-statement-with-vars case.
Merge branch 'invoke-on-disjunction'