refactor: use Pratt's parser in {foreach} expressions

So, after all the other changes that landed here is a PR that introduces Pratt's-alg-parsed expression in the {foreach} blocks. But this PR mostly changes how brackets around {if} / {foreach} expression are handled - that is - those are never part of the expression now.

@b-laporte would be great if you could review this one, especially peg grammar changes as  I feel this could be simplified - not sure how, though...
I think you should be more aggressive:
= c:([{}()] (exp:CoreExpText? {return exp !==null ? exp.value : ''})) {return c.join('')}

e.g. if expression = " a+b)foo "