feat(expressions): add support for the new operator

Closes #273
feat(expressions): add support for multi-statement expressions
refactor: use Pratt's parser for expressions in the {log} block
feat(expressions): support assigment = operator

Closes #272
fix: runtime filescope was wrongly renitialized

The filescope injected by the compiler inside the template function was properly retrieved during initialization.
But then, the variable being wrongly defined as a closure variable, it was reinitialized and not reassigned on subsequent calls.
fix(expressions): work around for the new operator and constructors overriding apply
refactor: use Pratt's parser in {let} blocks

Closes #280