razionalize the syntax tree and its validation code

Remove the node of kind "BlockStatement". Now the blocks are just
list of statements.
Remove unused entry in AST/parser to build block statements
Improve the accuracy of parenthesis for expression in lua codegen

With this modifications the parenthesis are generated only for
expressions where they are strictly required. The new rule take into
account the difference between left and right priority in the Lua
parser. The two priority can differ for right associative operations
like the power "^".