Introduced AstModuleKind

Signed-off-by: Vinzenz Feenstra <evilissimo@gmail.com>
Some restructuring and removal of obsolete ForExpr

Signed-off-by: Vinzenz Feenstra <evilissimo@gmail.com>