Differentiate statements from expressions in Lua AST
Introduce mechanisms to add generated statements in AST

The mechanisms accumulate statements in the AST state. When a new statement
is generated the acculated statements are bound to the statement itself.
The statements are therefore recollected when a BlockStatement is formed.
Implement matrix indexing bound checks
Remove duplicate functions in Lua AST implementation
Implement "mutable" flag for variables in Lua AST