[Fix] Harden leo-fmt for 4.0 syntax validation and integrate CI
Add leo-fmt checks to CI, fix formatter/parser edge cases found while
validating against the workspace corpus, and update test expectations.
Better errors for forbidden items in final blocks
Final blocks may not contain invocations of `self.caller` or
`self.signer` or captures of record values. However this can almost
always be alleviated by capturing a local variable representing the
value of these items.
The current errors for those cases, though common in rewriting code for
the new syntax, is very unclear. This change provides better errors and
guidance to the developper.
Fixes #29185