A few Go-related improvements

Add a few basic test cases (from https://gobyexample.com/, CC-BY 3.0), report scope in the tags (in addition to the existing support for `--extra=q`), and drop use of `setjmp()`/`longjmp()`.

---
However, even after this the parser has a problem: it can abort on malformed input.  Indeed, it uses `Assert()` to check if read token is expected.  This actually have 2 problems:

1. it may abort a whole run if the input is invalid;
2. the check is not effective because Assert() can be compiled out (and is unless `DEBUG` is defined).

This makes these checks both problematic and useless.

What do you think should be done here?  I think we should remove them or replace them with an `if` as appropriate, but is there a rule about this?